home *** CD-ROM | disk | FTP | other *** search
/ Shareware 1 2 the Maxx / sw_1.zip / sw_1 / UTILS / BINGO211.ZIP / BINGO.DOC < prev    next >
Text File  |  1992-05-10  |  198KB  |  5,947 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.                        The Bingo Programmer's Text Editor
  7.                                A Shareware Product
  8.                                   Version 2.11
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.                                 Reference Manual
  26.                             Copyright 1989,1990,1991
  27.                             Christopher R. S. Schanck
  28.  
  29.                                   May 10, 1992
  30.  
  31.  
  32.  
  33.  
  34.                                 Table of Contents
  35.                                 -----------------
  36.  
  37.      Introduction  . . . . . . . . . . . . . . . . . . . . . . . . . .    2
  38.           Philosophy . . . . . . . . . . . . . . . . . . . . . . . . .    3
  39.           The Shareware Concept and Registering  . . . . . . . . . . .    5
  40.           PsL Shareware Registration . . . . . . . . . . . . . . . . .    6
  41.           Things to Possibly Come  . . . . . . . . . . . . . . . . . .    7
  42.           Support  . . . . . . . . . . . . . . . . . . . . . . . . . .    8
  43.           CompuServe . . . . . . . . . . . . . . . . . . . . . . . . .    9
  44.           Getting the Latest Version . . . . . . . . . . . . . . . . .   10
  45.           Using this Manual  . . . . . . . . . . . . . . . . . . . . .   11
  46.  
  47.      Critical Short Sections . . . . . . . . . . . . . . . . . . . . .   12
  48.           Installing Bingo . . . . . . . . . . . . . . . . . . . . . .   12
  49.           Invoking Bingo . . . . . . . . . . . . . . . . . . . . . . .   13
  50.           The BINGO.INI file . . . . . . . . . . . . . . . . . . . . .   14
  51.           Virtual Memory & the PAGESIZE Utility  . . . . . . . . . . .   15
  52.           Impact of Virtual Memory on Performance  . . . . . . . . . .   16
  53.           Bingo and Larger Screen Displays . . . . . . . . . . . . . .   17
  54.           How Bingo Swaps Out of Memory and Back . . . . . . . . . . .   18
  55.           Bingo's Menu System  . . . . . . . . . . . . . . . . . . . .   20
  56.           Bingo's Dialogue Boxes . . . . . . . . . . . . . . . . . . .   21
  57.                String Entry Boxes  . . . . . . . . . . . . . . . . . .   21
  58.                Yes/No Boxes  . . . . . . . . . . . . . . . . . . . . .   21
  59.                Non-Editable Display Boxes  . . . . . . . . . . . . . .   21
  60.                List-Picking Boxes  . . . . . . . . . . . . . . . . . .   22
  61.           Directory Lister . . . . . . . . . . . . . . . . . . . . . .   23
  62.           Bingo and File Names . . . . . . . . . . . . . . . . . . . .   24
  63.           The Status Line  . . . . . . . . . . . . . . . . . . . . . .   25
  64.           KEYCFG: The Keyboard Configuration Program . . . . . . . . .   26
  65.                Key Names . . . . . . . . . . . . . . . . . . . . . . .   26
  66.                'open_end' Identifier . . . . . . . . . . . . . . . . .   29
  67.                'cur_file' Identifier . . . . . . . . . . . . . . . . .   30
  68.                KEYCFG Command Line Options . . . . . . . . . . . . . .   31
  69.           Bingo & The Mouse  . . . . . . . . . . . . . . . . . . . . .   32
  70.                The Mouse Cursor  . . . . . . . . . . . . . . . . . . .   32
  71.                The Mouse at the General Editing Level  . . . . . . . .   32
  72.                The Mouse and The Menus . . . . . . . . . . . . . . . .   34
  73.                The Mouse & Dialogue Boxes  . . . . . . . . . . . . . .   35
  74.                     String Entry Boxes . . . . . . . . . . . . . . . .   35
  75.                     Yes/No Boxes . . . . . . . . . . . . . . . . . . .   35
  76.                     Non-Editable Display Boxes . . . . . . . . . . . .   35
  77.                     List-Picking Boxes . . . . . . . . . . . . . . . .   35
  78.                The Mouse and The ASCII Table . . . . . . . . . . . . .   36
  79.           Bingo and 4Dos . . . . . . . . . . . . . . . . . . . . . . .   37
  80.  
  81.      Basic Editing . . . . . . . . . . . . . . . . . . . . . . . . . .   38
  82.           The Destructive Backspace  . . . . . . . . . . . . . . . . .   38
  83.           Delete EOL vs. Delete Line vs. Delete BOL  . . . . . . . . .   38
  84.           Deleting Words . . . . . . . . . . . . . . . . . . . . . . .   38
  85.  
  86.      File Handling . . . . . . . . . . . . . . . . . . . . . . . . . .   39
  87.           Edit_file & Load_file  . . . . . . . . . . . . . . . . . . .   39
  88.  
  89.  
  90.  
  91.  
  92.           Choose_file  . . . . . . . . . . . . . . . . . . . . . . . .   39
  93.           Rename_file  . . . . . . . . . . . . . . . . . . . . . . . .   39
  94.           Quit . . . . . . . . . . . . . . . . . . . . . . . . . . . .   39
  95.           Quit_all . . . . . . . . . . . . . . . . . . . . . . . . . .   40
  96.           Abort & Abort_all  . . . . . . . . . . . . . . . . . . . . .   40
  97.           Delete_file  . . . . . . . . . . . . . . . . . . . . . . . .   40
  98.           Zap_file . . . . . . . . . . . . . . . . . . . . . . . . . .   40
  99.           Modify_save & Modify_save_all  . . . . . . . . . . . . . . .   40
  100.           Switch_file  . . . . . . . . . . . . . . . . . . . . . . . .   40
  101.           Clean_file & Clean_all . . . . . . . . . . . . . . . . . . .   40
  102.           Pick_file  . . . . . . . . . . . . . . . . . . . . . . . . .   40
  103.  
  104.      Searching . . . . . . . . . . . . . . . . . . . . . . . . . . . .   42
  105.           Regular Expression Search & Replace Examples . . . . . . . .   43
  106.  
  107.      Navigation  . . . . . . . . . . . . . . . . . . . . . . . . . . .   45
  108.  
  109.      Block Handling  . . . . . . . . . . . . . . . . . . . . . . . . .   46
  110.           Marking  . . . . . . . . . . . . . . . . . . . . . . . . . .   46
  111.           Operations on Blocks . . . . . . . . . . . . . . . . . . . .   46
  112.           Named Buffers  . . . . . . . . . . . . . . . . . . . . . . .   47
  113.           Miscellaneous Functions  . . . . . . . . . . . . . . . . . .   47
  114.           Emacs_yank . . . . . . . . . . . . . . . . . . . . . . . . .   47
  115.  
  116.      Utilities . . . . . . . . . . . . . . . . . . . . . . . . . . . .   48
  117.  
  118.      Extra Functions . . . . . . . . . . . . . . . . . . . . . . . . .   49
  119.           Help . . . . . . . . . . . . . . . . . . . . . . . . . . . .   49
  120.           Info . . . . . . . . . . . . . . . . . . . . . . . . . . . .   49
  121.           Pick & Exec  . . . . . . . . . . . . . . . . . . . . . . . .   49
  122.           Quit and Save Status . . . . . . . . . . . . . . . . . . . .   49
  123.           Global . . . . . . . . . . . . . . . . . . . . . . . . . . .   50
  124.           Ascii_table  . . . . . . . . . . . . . . . . . . . . . . . .   50
  125.           Load_ & Write_profile  . . . . . . . . . . . . . . . . . . .   50
  126.           Repeat_last  . . . . . . . . . . . . . . . . . . . . . . . .   51
  127.           Display_file . . . . . . . . . . . . . . . . . . . . . . . .   51
  128.           Box Draw Mode  . . . . . . . . . . . . . . . . . . . . . . .   51
  129.           Cmd_line . . . . . . . . . . . . . . . . . . . . . . . . . .   51
  130.  
  131.      System Operations . . . . . . . . . . . . . . . . . . . . . . . .   52
  132.           Changing Directories . . . . . . . . . . . . . . . . . . . .   52
  133.           Simple Execution & Shelling  . . . . . . . . . . . . . . . .   52
  134.           Swap Execution & Shelling  . . . . . . . . . . . . . . . . .   52
  135.  
  136.      Macros  . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   54
  137.           Macro Space  . . . . . . . . . . . . . . . . . . . . . . . .   54
  138.           Defining Macros  . . . . . . . . . . . . . . . . . . . . . .   54
  139.           Saving Macros  . . . . . . . . . . . . . . . . . . . . . . .   55
  140.           Saving the Entire Key Set  . . . . . . . . . . . . . . . . .   55
  141.           Executing a Macro File . . . . . . . . . . . . . . . . . . .   55
  142.  
  143.      Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   56
  144.           Window_split, _edit & _load  . . . . . . . . . . . . . . . .   56
  145.           Window_vertical  . . . . . . . . . . . . . . . . . . . . . .   56
  146.  
  147.  
  148.  
  149.  
  150.           Window_resize  . . . . . . . . . . . . . . . . . . . . . . .   56
  151.           Window_one & Window_zoom . . . . . . . . . . . . . . . . . .   56
  152.  
  153.      Printing  . . . . . . . . . . . . . . . . . . . . . . . . . . . .   57
  154.  
  155.      Error Parsing and Undo  . . . . . . . . . . . . . . . . . . . . .   58
  156.           How Error Parsing Works  . . . . . . . . . . . . . . . . . .   58
  157.           Error Parsing Method . . . . . . . . . . . . . . . . . . . .   58
  158.           Undo Capabilities  . . . . . . . . . . . . . . . . . . . . .   59
  159.           Manipulating the Undo Stack  . . . . . . . . . . . . . . . .   60
  160.  
  161.      Configuring Bingo . . . . . . . . . . . . . . . . . . . . . . . .   61
  162.  
  163.      Function List . . . . . . . . . . . . . . . . . . . . . . . . . .   62
  164.           General Editing  . . . . . . . . . . . . . . . . . . . . . .   62
  165.           File Handling  . . . . . . . . . . . . . . . . . . . . . . .   64
  166.           Searching  . . . . . . . . . . . . . . . . . . . . . . . . .   66
  167.           Navigation . . . . . . . . . . . . . . . . . . . . . . . . .   68
  168.           Block Handling . . . . . . . . . . . . . . . . . . . . . . .   71
  169.           Utilities  . . . . . . . . . . . . . . . . . . . . . . . . .   73
  170.           Extra Operations . . . . . . . . . . . . . . . . . . . . . .   75
  171.           System Operations  . . . . . . . . . . . . . . . . . . . . .   77
  172.           Macros . . . . . . . . . . . . . . . . . . . . . . . . . . .   78
  173.           Windows  . . . . . . . . . . . . . . . . . . . . . . . . . .   79
  174.           Printing . . . . . . . . . . . . . . . . . . . . . . . . . .   81
  175.           Error Parsing and Undo . . . . . . . . . . . . . . . . . . .   82
  176.           Configuration  . . . . . . . . . . . . . . . . . . . . . . .   83
  177.  
  178.      License Agreement . . . . . . . . . . . . . . . . . . . . . . . .   90
  179.  
  180.      Registration Form - Bingo 2.11  . . . . . . . . . . . . . . . . .   92
  181.  
  182.      The Author  . . . . . . . . . . . . . . . . . . . . . . . . . . .   94
  183.  
  184.      Acknowledgements  . . . . . . . . . . . . . . . . . . . . . . . .   95
  185.  
  186.      Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   96
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.                            Bingo 2.11 Reference Manual
  203.                                         1
  204.  
  205.  
  206.  
  207.  
  208.                                   Introduction
  209.                                   ------------
  210.  
  211.           This document serves as the reference manual for Bingo 2.11. 
  212.      Bingo is a full-featured text editor at the right price.  Some of its
  213.      features include:
  214.  
  215.      -    high speed execution, with particularly fast searches, screen
  216.           handling, and file I/O
  217.      -    virtual memory for file storage; up to 240 Megabytes of file
  218.           storage possible
  219.      -    full color support
  220.      -    programmable integrated mouse support
  221.      -    support of VGA, EGA, & MCGA extended text modes
  222.      -    superb macro capability
  223.      -    large suite of utility functions: entab; detab; command repeat;
  224.           shift; etc.
  225.      -    custom define your own keyboard setup
  226.      -    complete menu system supporting most Bingo functions
  227.      -    multiple files, multiple windows: view different sections of the
  228.           same file, or different files at the same time
  229.      -    execute DOS commands, including command-line compilers within
  230.           only ~4k of overhead
  231.      -    regular expression search and replace
  232.      -    completely configurable from within itself
  233.      -    use placemarks to mark positions in files
  234.      -    user definable help file
  235.      -    extensive block operation support, include point, line and column
  236.           marking, and two different sets of block operations
  237.      -    one default block buffer, plus 26 additional named buffers
  238.      -    wordwrap, paragraph formatting, and autoindent support included
  239.           for text processing work
  240.      -    C Mode supports programming in the C programming language
  241.      -    User-defined delimiter and indentation matching
  242.      -    directory list picker
  243.      -    execute *any* Bingo function from within Bingo whether it has
  244.           been assigned to a key or not using a 'function picker'
  245.      -    interrupt Bingo at any point and exit, and when you restart Bingo
  246.           it will pick up exactly where you left off
  247.      -    print files & blocks through the serial port, parallel port, or
  248.           to a file, with or without line numbers and/or page headers.
  249.      -    set printing left margin, top margin, and lines per page
  250.      -    automatic processing of errors generated by the Borland and
  251.           Microsoft developmental tools.
  252.      -    undelete stack of deleted items
  253.      -    execute any command or macro "globally" over all files in the
  254.           ring
  255.      -    profile files allow file extension specific settings.
  256.      -    box draw mode for easy screen design
  257.      -    automated, timed backups
  258.  
  259.  
  260.                            Bingo 2.11 Reference Manual
  261.                                         2
  262.  
  263.  
  264.  
  265.  
  266.      Philosophy
  267.      ----------
  268.  
  269.           Text editors are not required for every system; at least, an
  270.      editor of Bingo's power is not.  If all you require of your editor is
  271.      that it allow you to modify batch files and such, Bingo is overkill. 
  272.      Cheap overkill, but still overkill.  However, if you use an editor
  273.      daily, as a programmer, as a consultant who hops from system to system
  274.      and likes to have his/her own tools, or in any other situation where
  275.      you need to depend on it, Bingo could very well be what you are
  276.      looking for.  Why?  In spite of its power, Bingo is very inexpensive,
  277.      and does some things no other editors do, as a look at its feature
  278.      list will convince you.
  279.           People who live with an editor daily for long stretches of time
  280.      know that choosing an editor is a near-religious experience.  Defense
  281.      of your choice develops into a kind of fanaticism.  In the Unix world,
  282.      VI/Emacs wars promise to extend into the next millennium.  It was the
  283.      fact that I could not find an editor I was truly comfortable with that
  284.      prompted me to design Bingo.  In doing so I believe I have created an
  285.      editor that should appeal to a broad base of users.  
  286.           Bingo allows a large degree of latitude when it comes to
  287.      assigning keys.  In a complementary fashion, it allows a user
  288.      specified file to be used for help.  Further, because of Bingo's
  289.      extensive and powerful menuing system, you do not need to memorize a
  290.      large number of keystrokes in order to use Bingo effectively.  This
  291.      allows you to get up and going in a minimum amount of time.
  292.           Bingo has a large degree of programmable mouse support has been
  293.      added.  I have found mouse use to be very nice when editing, and the
  294.      response has been very enthusiastic.  Version 2.10e added an
  295.      additional mouse primitive 'mouse_scroll' which, combined with the
  296.      macro capability, allows you to scroll and drag with your mouse.
  297.           Bingo is optimized for response time.  Screen response in
  298.      particular is very quick, taking full advantage of the PC's direct
  299.      video architecture.  Searches also occur at blazing speed -- a must if
  300.      you spend many hours with an editor.
  301.           Bingo is heavily configurable, all from within the editor itself. 
  302.      This "on-the-fly" ability is a lifesaver if you hop from one system to
  303.      another.
  304.           Bingo has all the standard macro and file handling abilities, but
  305.      it specifically excels at block handling.  Three types of marking, 27
  306.      buffers to use, and a huge array of functions to deal with block
  307.      operations allow you to use blocks to their fullest.
  308.           Especially designed for programmers, Bingo includes a suite of
  309.      utility functions to aid in handling program text.  Functions to shift
  310.      blocks of text left and right, to align blocks, to sort blocks, to
  311.      match delimiters, and to move by indentation are only a few of the
  312.      many handy functions included.  In version 2.10e, you can specify just
  313.      what a delimiter is, say "repeat" and "until".  Then you could sit on
  314.      a "repeat", and let Bingo find the matching "until".
  315.           With version 2.01, a powerful regular expression search and
  316.      replace method has been added.  Further, 'profile' files, which enable
  317.  
  318.                            Bingo 2.11 Reference Manual
  319.                                         3
  320.  
  321.  
  322.  
  323.  
  324.      specific text settings to be associated with files having certain
  325.      extensions, are supported.  To make this useful, each file (or buffer)
  326.      in the ring now maintains its own set of these settings.  This allows
  327.      you to have the correct settings for .DOC files show up when you load
  328.      .DOC files, the correct settings for .CPP files do likewise, and so
  329.      on.
  330.  
  331.  
  332.  
  333.  
  334.  
  335.  
  336.  
  337.  
  338.  
  339.  
  340.  
  341.  
  342.  
  343.  
  344.  
  345.  
  346.  
  347.  
  348.  
  349.  
  350.  
  351.  
  352.  
  353.  
  354.  
  355.  
  356.  
  357.  
  358.  
  359.  
  360.  
  361.  
  362.  
  363.  
  364.  
  365.  
  366.  
  367.  
  368.  
  369.  
  370.  
  371.  
  372.  
  373.  
  374.  
  375.  
  376.                            Bingo 2.11 Reference Manual
  377.                                         4
  378.  
  379.  
  380.  
  381.  
  382.      The Shareware Concept and Registering
  383.      -------------------------------------
  384.           This is just a general note as to what Bingo being Shareware
  385.      means to you, the user.  Shareware could just as easily be called
  386.      "Honorware": I depend upon you honor to mail in your payment for Bingo
  387.      if you are using it regularly.  All of the legal jargon describing
  388.      this Shareware concept is contained in the License & Registration
  389.      section of this manual.
  390.           Basically, I depend upon you to mail in your payment for Bingo
  391.      after you have taken a reasonable amount of time to try it out.  If
  392.      you use it regularly, please mail in the payment.  The number of man-
  393.      hours which went into Bingo is incredible; the registration fee is a
  394.      small price to pay. So if you use Bingo regularly, send me the
  395.      registration fee I charge for Bingo -- it's not much money for a very
  396.      sharp program.
  397.           When you register, you are entitled to a number of advantages,
  398.      depending on how you register.  If your registration is a Single
  399.      Version registration ($40), these benefits include:
  400.           1) If you request it, I will mail you a copy of the current
  401.           release of Bingo free.
  402.           2) You are entitled to support for 9 months, or until 1 month
  403.           past the release of the next version, whichever is longer.
  404.      If your registration is a Lifetime registration ($75), your benefits
  405.      are a little more extensive.  They include:
  406.           1) If you request it, I will mail you a copy of the current
  407.           release of Bingo free.
  408.           2) You are entitled to support for as long as Bingo is marketed
  409.           as a product, be it as shareware or commercial.
  410.           3) The next release will be mailed to you free of charge.
  411.           4) You will be notified of each successive release, and each will
  412.           be available to you for a mere $5.00 shipping fee.
  413.  
  414.           In addition, with version 2.01 and beyond, registered users of
  415.      any sort get to have their named emblazoned on their copy for all to
  416.      see;  this way everyone will know what honorable people they are.  And
  417.      no, a simple sector editor cannot change this name -- it has to be
  418.      done here.  The name will be shown on the initial screen which is
  419.      popped up when bingo is executed, and can also be accessed from the
  420.      'version_info' function.
  421.           Also, some registered users are asked to beta-test upcoming
  422.      versions -- a double-edged sword.  Beta testing is somewhat precarious
  423.      at times, but you do get to take a hand in forming the next version. 
  424.      Plus you get to have your complaints redressed faster than the general
  425.      public.
  426.  
  427.  
  428.  
  429.  
  430.  
  431.  
  432.  
  433.  
  434.                            Bingo 2.11 Reference Manual
  435.                                         5
  436.  
  437.  
  438.  
  439.  
  440.      PsL Shareware Registration
  441.      --------------------------
  442.  
  443.           You can order directly from me at the below address or from
  444.      Public (software) Library with your MC, Visa, AmEx or Discover
  445.      card by calling 800-2424-PsL or 713-524-6394 or by FAX to
  446.      713-524-6398 or by CompuServe to 71355,470 or by mail to PsL, PO
  447.      Box 35705, Houston, Texas 77235-5705.  Bingo's order # is 10399.
  448.      Please use this number when ordering if possible.  These numbers
  449.      are for ordering only.  For information about dealer pricing,
  450.      volume discounts, site licensing, shipping of product, returns,
  451.      latest version number or other technical information, contact me
  452.      at
  453.  
  454.                        Christopher R. S. Schanck
  455.                        PO Box 279
  456.                        Hanover MD 21076
  457.                        (301) 730-9874
  458.  
  459.  
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466.  
  467.  
  468.  
  469.  
  470.  
  471.  
  472.  
  473.  
  474.  
  475.  
  476.  
  477.  
  478.  
  479.  
  480.  
  481.  
  482.  
  483.  
  484.  
  485.  
  486.  
  487.  
  488.  
  489.  
  490.  
  491.  
  492.                            Bingo 2.11 Reference Manual
  493.                                         6
  494.  
  495.  
  496.  
  497.  
  498.      Things to Possibly Come
  499.      -----------------------
  500.           "The one major thing which still(!) looms in Bingo's future is
  501.           the ability to work with files larger than memory.  I am still
  502.           thinking of implementing a virtual memory method, but it may or
  503.           may not appear in later versions."
  504.  
  505.           This phrase, or something similar, has appeared in the
  506.      documentation of each of the previous versions of Bingo prior to 2.10. 
  507.      However, 2.10 introduced a fast, efficient virtual memory paradigm. 
  508.      Theoretically, it allows you to edit up to 240 Megabytes of file
  509.      storage -- that is a lot of files!  Practically, it means that if you
  510.      have the disk storage, you need not worry about memory constraints
  511.      again.  
  512.           Implementing virtual memory necessitated almost a complete
  513.      rewrite of Bingo.  Hence, not a lot of new functionality was
  514.      introduced in this version; I believe the total is about 20 new
  515.      functions, none of which add major functionality.  Several major
  516.      things are in the works for the future, including customizable menus,
  517.      a new window scheme, and an expanded macro language.  Further, the
  518.      regular expression subsystem is going to be completely rewritten for
  519.      the next release, much as the word functions were for this release.
  520.           Currently (12/91) I am prototyping a full procedural interpreter
  521.      which will be integrated into Bingo.  As I see it now, Bingo has a
  522.      truly incredible amount of functionality, but it is not as accessible
  523.      as I would like.  So, I am working on an interpreted language
  524.      including looping, branching, functions, recursion, variables, and
  525.      more.  This will in all liklihood constitute version 3.0, but I am not
  526.      putting a date on it.  Language implementation is proving as hairy as
  527.      virtual memory was ;-).
  528.  
  529.  
  530.  
  531.  
  532.  
  533.  
  534.  
  535.  
  536.  
  537.  
  538.  
  539.  
  540.  
  541.  
  542.  
  543.  
  544.  
  545.  
  546.  
  547.  
  548.  
  549.  
  550.                            Bingo 2.11 Reference Manual
  551.                                         7
  552.  
  553.  
  554.  
  555.  
  556.      Support
  557.      -------
  558.  
  559.           As any of my registered users will tell you, I am committed to
  560.      supporting Bingo.  Without my users, where would I be?  Anyone,
  561.      registered or not, who calls or writes me will receive prompt and
  562.      (hopefully) useful help.  I particularly like to hear of requests;
  563.      anything you would like to see in Bingo, let me know.  One of my beta-
  564.      testers remarked that he felt like he had a personal editor --
  565.      anything he wanted was added.
  566.           I am now residing in the Baltimore area.  My current address and
  567.      phone number is:
  568.  
  569.           Christopher Schanck
  570.           PO Box 279
  571.           Hanover MD 21076
  572.           (410) 799-7052
  573.  
  574.      You are welcome to call me at the above number, but while the address
  575.      will be stable for the next several years, phone numbers do change. 
  576.      Should this number become invalid for any reason, call (215) 691-1070
  577.      (9am to 6pm, EST).  If you wish, you will be given a number where you
  578.      can currently reach me, or you can leave your name and number, and I
  579.      will return your call within 2-3 days.
  580.           PLEASE feel free to contact me.  I very much like to hear from
  581.      you!  
  582.  
  583.  
  584.  
  585.  
  586.  
  587.  
  588.  
  589.  
  590.  
  591.  
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598.  
  599.  
  600.  
  601.  
  602.  
  603.  
  604.  
  605.  
  606.  
  607.  
  608.                            Bingo 2.11 Reference Manual
  609.                                         8
  610.  
  611.  
  612.  
  613.  
  614.      CompuServe
  615.      ----------
  616.           Recently I became a subscriber to Compuserve.  You can contact me
  617.      there as:
  618.           70541,3614
  619.      On the Internet, that would be:
  620.           70541.3614@compuserve.com
  621.      This is the fastest, most reliable way to contact me.
  622.  
  623.  
  624.  
  625.  
  626.  
  627.  
  628.  
  629.  
  630.  
  631.  
  632.  
  633.  
  634.  
  635.  
  636.  
  637.  
  638.  
  639.  
  640.  
  641.  
  642.  
  643.  
  644.  
  645.  
  646.  
  647.  
  648.  
  649.  
  650.  
  651.  
  652.  
  653.  
  654.  
  655.  
  656.  
  657.  
  658.  
  659.  
  660.  
  661.  
  662.  
  663.  
  664.  
  665.  
  666.                            Bingo 2.11 Reference Manual
  667.                                         9
  668.  
  669.  
  670.  
  671.  
  672.      Getting the Latest Version
  673.      --------------------------
  674.           If you have a copy of Bingo but are not sure if it is the latest
  675.      version, the best way to find out is by calling the Computer
  676.      Connection BBS in Washington DC.  This is a very large, well-managed
  677.      BBS.  The latest version of Bingo will always be available here, and
  678.      E-Mail left for me will be answered.  The number is (202) 547-2008. 
  679.      Likewise, Bingo will always be on Compuserve, in the IBMNET section,
  680.      generally named BINGO?.ZIP.
  681.  
  682.  
  683.  
  684.  
  685.  
  686.  
  687.  
  688.  
  689.  
  690.  
  691.  
  692.  
  693.  
  694.  
  695.  
  696.  
  697.  
  698.  
  699.  
  700.  
  701.  
  702.  
  703.  
  704.  
  705.  
  706.  
  707.  
  708.  
  709.  
  710.  
  711.  
  712.  
  713.  
  714.  
  715.  
  716.  
  717.  
  718.  
  719.  
  720.  
  721.  
  722.  
  723.  
  724.                            Bingo 2.11 Reference Manual
  725.                                        10
  726.  
  727.  
  728.  
  729.  
  730.      Using this Manual
  731.      -----------------
  732.           This manual is broken into three parts.  The first is comprised
  733.      of small sections concerned with particular little parts of Bingo,
  734.      such as Installation and Invocation.  
  735.           The second part consists of sections on each major functionality
  736.      present in Bingo.  These individual sections are not tutorial in
  737.      orientation, but rather give necessary information needed to utilize
  738.      this functionality.  
  739.           The final section is a listing of all of the functions supported
  740.      by Bingo.
  741.           I suggest that the first time user first read the initial
  742.      sections for pertinent information, then go through the function list
  743.      *thoroughly*.  This will give you a clear idea of the capabilities of
  744.      Bingo.  Then, for clarification, go through the middle sections as
  745.      needed.
  746.           Finally, read the READ.ME file very carefully.  In some cases it
  747.      will have information this file doesn't contain, and it may describe
  748.      some things in greater detail as it is kept as a running log as I make
  749.      changes.
  750.  
  751.  
  752.  
  753.  
  754.  
  755.  
  756.  
  757.  
  758.  
  759.  
  760.  
  761.  
  762.  
  763.  
  764.  
  765.  
  766.  
  767.  
  768.  
  769.  
  770.  
  771.  
  772.  
  773.  
  774.  
  775.  
  776.  
  777.  
  778.  
  779.  
  780.  
  781.  
  782.                            Bingo 2.11 Reference Manual
  783.                                        11
  784.  
  785.  
  786.  
  787.  
  788.                              Critical Short Sections
  789.                              -----------------------
  790.  
  791.      Installing Bingo
  792.      ----------------
  793.           There are 3 files which are of critical importance for Bingo to
  794.      run. 
  795.           BE.EXE and BE.COM are the executables.  BE.EXE is the actual
  796.      editor executable.  BE.COM is the loader file; this allows Bingo to
  797.      swap itself in and out of memory.  Both of these files MUST, MUST,
  798.      MUST reside in the same subdirectory (Got that?).  If you dislike
  799.      typing 'be' at the DOS command, you CAN rename Bingo's executable. 
  800.      Just rename both the .EXE and the .COM to be the same filename (with
  801.      different extensions), for instance, you might shorten it to B.COM and
  802.      B.EXE (programmer's, being lazy in their typing, will no doubt do
  803.      this; I did ;-)  One point to remember, don't invoke the .EXE file
  804.      directly.  As long as you have both in the same directory, you can
  805.      type 'BE' (no extension), and the .COM file will be executed.  Or you
  806.      can execute the .COM file directly.
  807.           KEYCFG.SET is the compiled keyboard definition file.  This needs
  808.      to be in the same directory as BE.EXE/.COM, or in the current
  809.      directory.
  810.           KEYCFG.EXE is another program of importance; it is the program
  811.      used to generate a keyboard configuration.  It takes the name of a
  812.      configuration file (usually BINGO.CFG) and generates a keyset file
  813.      (usually called KEYCFG.SET).  See the section titled Configuring the
  814.      Keyboard for more information.
  815.           The help file BINGO.HLP, is an additional file which must be in
  816.      the same subdirectory as BE.EXE.  When you invoke help, Bingo will
  817.      look there for the file BINGO.HLP.  The file may contain your own
  818.      description of the current key layout, or just about anything else you
  819.      would like.  Bingo comes with a default help file.
  820.           As an example, assume the Bingo distribution files are contained
  821.      on drive A:, and you are installing Bingo on drive C:.      First,
  822.      move to drive C: and create a directory for bingo, called \bingo using
  823.      DOS's mkdir command.  Move to this subdirectory using 'cd \bingo'. 
  824.      Now copy the files from drive A: over to the proper subdirectory by
  825.      using 'copy A:*.* C:\BINGO'.
  826.           Finally, you probably want to add 'C:\BINGO' to your PATH
  827.      environment variable.
  828.  
  829.  
  830.  
  831.  
  832.  
  833.  
  834.  
  835.  
  836.  
  837.  
  838.  
  839.  
  840.                            Bingo 2.11 Reference Manual
  841.                                        12
  842.  
  843.  
  844.  
  845.  
  846.      Invoking Bingo
  847.      --------------
  848.           Starting Bingo is simple.  Simply type:
  849.  
  850.                be <filespec> <filespec> ...
  851.                be.com <filespec> <filespec> ...
  852.  
  853.      at the DOS prompt, and you are off.  One of several things will
  854.      happen.  If each filename you gave is discreet (i.e., no wildcards),
  855.      the files named will each be loaded, one after another.  If a filespec
  856.      matches more than one file, a directory list of matching files will
  857.      pop up which will allow you to choose a file or files.  See the
  858.      section on the Directory List for further explanation.
  859.           If no filespec is given, Bingo will ask behave as if you issued
  860.      'be *.*'.
  861.  
  862.           You may also specify the starting line and column position for
  863.      the each loaded file.  The '/pLL:CC' switch allows you to do this. 
  864.      For example:
  865.  
  866.           be test.doc test2.doc /p10:5 /p20
  867.  
  868.      would load the file TEST.DOC and move to the 10th line, 5th column. 
  869.      TEST2.DOC would begin on the 20th line.  If you do not give a column
  870.      argument, the first column will be assumed.  
  871.  
  872.           Similarly, you can use the '-x<filename>' switch to run a macro
  873.      file on startup.  For Example:
  874.  
  875.           be test.doc test2.doc /xfun1.mac
  876.  
  877.      would load both files, then execute the macro file FUN1.MAC inside the
  878.      buffer holding TEST.DOC.
  879.  
  880.  
  881.  
  882.  
  883.  
  884.  
  885.  
  886.  
  887.  
  888.  
  889.  
  890.  
  891.  
  892.  
  893.  
  894.  
  895.  
  896.  
  897.  
  898.                            Bingo 2.11 Reference Manual
  899.                                        13
  900.  
  901.  
  902.  
  903.  
  904.      The BINGO.INI file
  905.      ------------------
  906.           With version 2.11, Bingo's configuration settings are stored in a
  907.      file called BINGO.INI.  When Bingo starts up, it will look first in
  908.      the local directory, then in BE.EXE's execution directory.  If it is
  909.      found in neither of these places, a message will appear upon startup
  910.      indicating Bingo couldn't find its configuration file.  To create
  911.      BINGO.INI, use the 'save_settings' function.
  912.           Moving the settings to a seperate file means that the settings
  913.      and the key configurations are held in 2 seperate files.  This allows
  914.      you to effortlessly use executable compression programs such as LZEXE
  915.      to compress BE.EXE; no longer is BE.EXE in the habit of modifying
  916.      itself.
  917.  
  918.  
  919.  
  920.  
  921.  
  922.  
  923.  
  924.  
  925.  
  926.  
  927.  
  928.  
  929.  
  930.  
  931.  
  932.  
  933.  
  934.  
  935.  
  936.  
  937.  
  938.  
  939.  
  940.  
  941.  
  942.  
  943.  
  944.  
  945.  
  946.  
  947.  
  948.  
  949.  
  950.  
  951.  
  952.  
  953.  
  954.  
  955.  
  956.                            Bingo 2.11 Reference Manual
  957.                                        14
  958.  
  959.  
  960.  
  961.  
  962.      Virtual Memory & the PAGESIZE Utility
  963.      -------------------------------------
  964.           In version 2.10, Bingo introduced a virtual memory paradigm to
  965.      allow programmers to edit more and larger files.  Virtual memory is a
  966.      simple, elegant, beautiful concept in the abstract; the reality, on an
  967.      MS-DOS based PC, is a very hairy beasty indeed.  Many different
  968.      methods for implementing virtual memory were examined.  The one I
  969.      settled on seems a good compromise; Bingo is still quick, and the
  970.      memory/disk swapping necessary when you are working with large files
  971.      is relatively unobtrusive.  I still edit fairly regularly on an 8088
  972.      machine, with a 65ms hard disk, and I find Bingo plenty fast enough. 
  973.      On a 386 with a fast drive (say, an 80meg IDE drive with a 32k onboard
  974.      cache), you never even realize it is swapping.
  975.           Bingo treats file storage as a set of fixed length blocks.  As
  976.      shipped, Bingo is generally configured for 2048 byte-sized blocks, or
  977.      2k.  Internally, Bingo can deal with up to 16k of these blocks
  978.      (buckets), configurable from 1k to 16k.  The blocksize, bucketsize, or
  979.      *pagesize*, is configurable from 2k to 16k, in even increments (i.e,
  980.      2k, 4k, 6k, 8k, etc).  The larger the pagesize, the more blocks (or
  981.      buckets) allocated the higher the theoretical memory limit.  For
  982.      instance, a pagesize of 16k with 8k buckets gives a theoretical memory
  983.      limit of 128 Megabytes!  So why not just set the limits way up and be
  984.      done with it, you ask?
  985.           Two reasons.  First, the larger the pagesize, the harder Bingo
  986.      works to manipulate text.  On faster machines, larger pagesizes are
  987.      fine; on a 386/25 Mhz PC, a 16k pagesize is no problem at all.  On the
  988.      other hand, a 2k pagesize is fine on every machine out there, hence
  989.      the default setting.
  990.           The larger the number of buckets allocated, the less conventional
  991.      memory Bingo has available for use.  So allocating a lot more than you
  992.      need is non-optimal use of your resources.
  993.           Second, let's be serious about this.  Seldom, if ever, will
  994.      someone really need to edit a file 200+ Megs in size.  Could happen;
  995.      that is why I coded it as I did.  But still.  Also, do the arithmetic. 
  996.      To edit a 200M file, you need roughly > 400M of disk storage; 200M for
  997.      the file itself, + 200M for the swapfile, + some odd number of bytes
  998.      for the file entries in the FAT table (grin).  Not a lot of systems
  999.      around with several hundred megs of storage hanging about.  But we
  1000.      plan for the future.
  1001.  
  1002.           To set the pagesize, use the PAGESIZE.COM utility.  The syntax is
  1003.  
  1004.           pagesize <# of buckets> <pagesize> <.exe file>
  1005.  
  1006.      where <# buckets> is the number of buckets (in Kilobytes) to allocate
  1007.      on startup and <page size> is the size in Kilobytes (2,4,6,8,...,16)
  1008.      and the filename is .EXE name to configure (i.e., BE.EXE).
  1009.  
  1010.  
  1011.  
  1012.  
  1013.  
  1014.                            Bingo 2.11 Reference Manual
  1015.                                        15
  1016.  
  1017.  
  1018.  
  1019.  
  1020.      Impact of Virtual Memory on Performance
  1021.      ---------------------------------------
  1022.           Virtual memory has had a measurable impact on Bingo's performance
  1023.      in a number of areas.  Users coming from version 2.01 or earlier will
  1024.      appreciate this discussion of differences.  
  1025.           On the downside, general editing is, in my estimation, a touch
  1026.      slower.  Searches, scrolling, block operations, etc.  On the other
  1027.      hand,  the only machine I can tell the difference on is an ancient
  1028.      8088; use an AT-class machine, and you can't see a difference. 
  1029.      However, even on the 8088, things are by no means slow; searches and
  1030.      such are still very quick.
  1031.           One function in particular is much slower.  When you sort a
  1032.      block, things are much, *much* slower in this version.  This is not so
  1033.      much a consequence of the virtual memory per se, but of the new memory
  1034.      structure.  In version 2.01 and earlier, sorting was done with a
  1035.      recursive algorithm (N log N bound), and swapping lines meant swapping
  1036.      pointers only.  In version 2.10, a stack-based sort is not acceptable,
  1037.      because with a large file you could corrupt the stack.  So the
  1038.      excellent CombSort algorithm (April 1991 BYTE) was used instead.  This
  1039.      algorithm approximates N log N time, but is ultimately slower.  The
  1040.      real speed killer, however, is that I can no longer simply swap
  1041.      pointers.  Instead, I have to physically move the lines themselves
  1042.      around.  This is slow, slow, slow, pushing the sort time way, way up. 
  1043.      But I did not want to eliminate sorting entirely.  I use it too much
  1044.      to give up.
  1045.           On the upside, obviously, you can edit humongous files with ease,
  1046.      and a virtually unlimited number of files.  This is an obvious
  1047.      improvement.
  1048.           The other highly visible improvement is in File I/O.  File
  1049.      reading and writing has been speeded up by something approaching a
  1050.      factor of 4.  The larger you set the pagesize, the faster file IO will
  1051.      be.  ALthough increasing the pagesize past the size of a disk sector
  1052.      will generally not show a lot of improvement.
  1053.  
  1054.  
  1055.  
  1056.  
  1057.  
  1058.  
  1059.  
  1060.  
  1061.  
  1062.  
  1063.  
  1064.  
  1065.  
  1066.  
  1067.  
  1068.  
  1069.  
  1070.  
  1071.  
  1072.                            Bingo 2.11 Reference Manual
  1073.                                        16
  1074.  
  1075.  
  1076.  
  1077.  
  1078.      Bingo and Larger Screen Displays
  1079.      --------------------------------
  1080.           EGA, VGA, and MCGA video display cards support displays larger
  1081.      than the standard 25 rows by 80 columns.  Bingo does support editing
  1082.      on these screen sizes.   Bingo can be set to handle screen displays in
  1083.      one of three ways:
  1084.           -    Bingo can be set to detect the current screen type and
  1085.                dimensions, and do retrace checking.
  1086.           -    Bingo can be set to detect the current screen type and size,
  1087.                but do no retrace checking.
  1088.           -    Bingo can be set to switch to 43/50 line mode if it is
  1089.                supported.  No retrace checking will be performed.
  1090.      As shipped, Bingo chooses the middle of these three courses.  The
  1091.      retrace checking is only done if you are using a color display with a
  1092.      25x80 configuration.
  1093.  
  1094.  
  1095.  
  1096.  
  1097.  
  1098.  
  1099.  
  1100.  
  1101.  
  1102.  
  1103.  
  1104.  
  1105.  
  1106.  
  1107.  
  1108.  
  1109.  
  1110.  
  1111.  
  1112.  
  1113.  
  1114.  
  1115.  
  1116.  
  1117.  
  1118.  
  1119.  
  1120.  
  1121.  
  1122.  
  1123.  
  1124.  
  1125.  
  1126.  
  1127.  
  1128.  
  1129.  
  1130.                            Bingo 2.11 Reference Manual
  1131.                                        17
  1132.  
  1133.  
  1134.  
  1135.  
  1136.      How Bingo Swaps Out of Memory and Back
  1137.      --------------------------------------
  1138.           Bingo uses a somewhat common method to swap itself in and out of
  1139.      memory which has several advantages over other methods.  When you
  1140.      start Bingo, the small stub program BE.COM is run.  BE.COM immediately
  1141.      runs BE.EXE.  Memory looks like (a) after startup.
  1142.  
  1143.               (a)               (b)                (c)                
  1144.                                                              
  1145.            be.com 6k          be.com 6k          be.com 6k   
  1146.                                                              
  1147.            be.exe ??k         requested          be.exe ??k  
  1148.                               program ?k                     
  1149.                                                              
  1150.                                                              
  1151.                                                              
  1152.              memory             memory             memory    
  1153.                                                              
  1154.                                                              
  1155.                                                              
  1156.                                                              
  1157.                                                              
  1158.  
  1159.           When you swap execute out, BE.EXE saves it current status to
  1160.      disk, then executes the requested program by overlaying itself. 
  1161.      Memory now looks like (b).  
  1162.           When the requested program is finished and terminates, control
  1163.      returns to BE.COM.  BE.COM checks the original directory to see if
  1164.      Bingo was swapped out by seeing if the temporary files used to save
  1165.      Bingo's status exist.  If they do, BE.COM runs BE.EXE again.  Memory
  1166.      now looks like (c).  
  1167.           When BE.EXE begins execution, it also checks for the presence of
  1168.      the temporary status files.  If they exist, it loads their data in and
  1169.      resumes execution where it left off.
  1170.  
  1171.           This is a very simple method for optimal memory usage, and it has
  1172.      one very large advantage.  If, while you are swapped out, your system
  1173.      is rebooted (for instance while you are testing a just-compiled
  1174.      exectable), when you start Bingo up again, it will pick up where you
  1175.      are, no questions asked.  This is a very important advantage; you can
  1176.      swap out knowing you can do what you like without fear for your text.
  1177.  
  1178.           The above methodology also lends allows you some leeway.  BE.COM
  1179.      is the quickest method to manage BE.EXE swapping.  However, it is no
  1180.      the only method.  The following batchfile will work, providing the
  1181.      environment variable BINGO is set:
  1182.  
  1183.  
  1184.  
  1185.  
  1186.  
  1187.  
  1188.                            Bingo 2.11 Reference Manual
  1189.                                        18
  1190.  
  1191.  
  1192.  
  1193.  
  1194.  
  1195.      ----------------------- start of batch file ----------------------
  1196.      @echo off
  1197.      break off
  1198.      rem --------------------------------------------------------------
  1199.      rem The BINGO environment variable is used to denote the path spec
  1200.      rem where be.exe can be found.  Remember the trailing '\\'!
  1201.      rem For example, if BE.EXE is in C:\EDIT, use
  1202.      rem   SET BINGO=C:\EDIT\
  1203.      rem --------------------------------------------------------------
  1204.      %bingo%be.exe %1 %2 %3 %4 %5 %6 %7 %8 %9
  1205.      :toploop
  1206.      if not exist %bingo%swap0000.dat goto endloop
  1207.      %bingo%be.exe
  1208.      goto toploop
  1209.      :endloop
  1210.      ----------------------- end of batch file ------------------------
  1211.  
  1212.           This batch file run BE.EXE, located in the directory named by the
  1213.      BINGO environment variable, passing through up to 9 parameters.  When
  1214.      BE.EXE terminates, the batch file checks if the 'swap0000.dat' file
  1215.      exists in BE.EXE execution directory.  If it doesn't, the batch file
  1216.      terminates.  If it exists, it reruns BE.EXE.
  1217.           Using normal DOS batch interpretation, this file does not run
  1218.      particularly quickly on lower end machines.  On higher end machines,
  1219.      or if you convert it run under alternate command processors such as
  1220.      4Dos, it runs quickly indeed.  And it gives you a much greater degree
  1221.      of control over directory usage.
  1222.  
  1223.  
  1224.  
  1225.  
  1226.  
  1227.  
  1228.  
  1229.  
  1230.  
  1231.  
  1232.  
  1233.  
  1234.  
  1235.  
  1236.  
  1237.  
  1238.  
  1239.  
  1240.  
  1241.  
  1242.  
  1243.  
  1244.  
  1245.  
  1246.                            Bingo 2.11 Reference Manual
  1247.                                        19
  1248.  
  1249.  
  1250.  
  1251.  
  1252.      Bingo's Menu System
  1253.      -------------------
  1254.           Bingo implements a comprehensive menu structure to aid you in
  1255.      utilizing Bingo's functions.  Many people, myself included, do not
  1256.      necessarily wish to spend the time to assign every function we need to
  1257.      a keyboard equivalent.  This requires a large time investment before
  1258.      you can begin using the editor.  On the other hand, it is very
  1259.      irritating when you need a particular function and cannot use it
  1260.      because you did not have the foresight to assigned it to a key
  1261.      combination.  
  1262.           Bingo's menu system was designed to handle just this situation. 
  1263.      By assigning the 'main_menu' function to a keystroke, you effectively
  1264.      have access to *every* function Bingo has.  First, greater than 75% of
  1265.      Bingo's functions are directly accessible from the menus, grouped in
  1266.      logical sets, following a logical hierarchy.  The remaining functions
  1267.      can be accessed by selecting the 'eXtras' sub-menu, then the 'Pick &
  1268.      exec' function.  This function then allows you to choose from a list
  1269.      of *all* supported functions.
  1270.           I have found that for most people, it pays to assign your most
  1271.      commonly needed functions to keystrokes, and then rely on the menu
  1272.      system for the ones which are used to a lesser degree.  The logical
  1273.      structure of the menus allows for easy access to less frequently
  1274.      needed functions.
  1275.           The menus themselves work quite easily.  A list of possibilities
  1276.      is presented.  A menubar can be moved up and down to make your choice;
  1277.      pressing Return selects the choice.  In addition, each choice has a
  1278.      highlighted character; pressing this character will automatically
  1279.      select the choice.
  1280.           In some cases you may be presented with a child menu.  Here again
  1281.      you may make a choice as before, with one additional bit of
  1282.      functionality.  If you are in a child menu, pressing the PgUp or PgDn
  1283.      keys will move you to the previous or next sibling menu, respectively. 
  1284.  
  1285.           The Print menu, as well as all of the configuration menus, is a
  1286.      multiple menu.  This means that after you have made a choice, the
  1287.      action will be executed and you will be returned to the menu at the
  1288.      same spot.  I have found that when printing and configuring, people
  1289.      usually want to do more than one task.  Menus which are multiple will
  1290.      have an asterisk ('*') printed at the bottom of the menu border.
  1291.           The Escape key always closes the current child menu.  If you are
  1292.      at the top menu, it quits the menu system entirely.  To see how your
  1293.      mouse, if you have one, interacts with the menus, see the section
  1294.      concerning Bingo and a mouse.
  1295.  
  1296.  
  1297.  
  1298.  
  1299.  
  1300.  
  1301.  
  1302.  
  1303.  
  1304.                            Bingo 2.11 Reference Manual
  1305.                                        20
  1306.  
  1307.  
  1308.  
  1309.  
  1310.      Bingo's Dialogue Boxes
  1311.      ----------------------
  1312.           Throughout Bingo, you will encounter many dialogue boxes.  There
  1313.      are four main types.  They are:
  1314.  
  1315.           String Entry Boxes:
  1316.  
  1317.           These are the boxes which ask you for string input.  The easiest
  1318.      example is when Bingo asks you for a filename.  These boxes allow you
  1319.      to enter string input in a flexible manner.  A wide variety of
  1320.      keystrokes are available to aid in this endeavor; they are:
  1321.  
  1322.                     ^F/CursRt      One Character Forward
  1323.                     ^B/CursLt      One Character Backward
  1324.                     ^A/Home        Beginning of Line
  1325.                     ^E/End         End of Line
  1326.                     ^K/CtrlEnd     Delete to Eol
  1327.                     CtrlHome       Delete to Bol
  1328.                     ^Y             Delete Line
  1329.                     Tab            Insert from Paste Buffer 
  1330.                     Insert         Toggle insert Mode
  1331.                     Alt-A          Invoke the ASCII Table
  1332.                     Up Arrow       Pops up a list of the previous 15
  1333.                                    strings entered.
  1334.                     PgUp           Pops up a list of the previous 15 
  1335.                                    filenames used.
  1336.  
  1337.           Pressing <Escape> will abort out of the string entry operation.
  1338.  
  1339.           Yes/No Boxes:
  1340.  
  1341.           These are the boxes which require a yes or no answer to a
  1342.      question.  An example of this is when you 'quit' a file and the file
  1343.      has been modified.  Bingo will ask you if you wish to save the file.
  1344.           Each time you enter a Yes/No box, one of the two options will be
  1345.      will be highlighted.  This is the default option which will be
  1346.      selected if you press <Return>.  By using the Left and Right Arrow
  1347.      keys, you can change the current selection.  Alternatively, you can
  1348.      press either the 'y' key (any case) for a yes answer, or the 'n' key
  1349.      (any case) for a no answer.
  1350.           Pressing <Escape> will abort the operation.
  1351.  
  1352.           Non-Editable Display Boxes:
  1353.  
  1354.  
  1355.  
  1356.  
  1357.  
  1358.  
  1359.  
  1360.  
  1361.  
  1362.                            Bingo 2.11 Reference Manual
  1363.                                        21
  1364.  
  1365.  
  1366.  
  1367.  
  1368.           The easiest example of this type of box is the Help box, or the
  1369.      Info box.  This type of box simply displays a number of lines within a
  1370.      box.  By using the Up and Down arrows (also the space bar) you may
  1371.      scroll by lines, and by using the Page Up and Page Down keys you may
  1372.      scroll by pages.
  1373.           Any other keystroke will exit the box.
  1374.  
  1375.  
  1376.           List-Picking Boxes:
  1377.  
  1378.           The best example of this type of dialogue box occurs when the
  1379.      'directory list picker' pops up.  This type of box is very similar to
  1380.      the Non-Editable box discussed above, but the idea here is not merely
  1381.      to display information but to facilitate making a choice.  There will
  1382.      be a menubar highlighted, showing the current selection.  You may move
  1383.      this bar up and down using the arrow and page keys.  Pressing <Return>
  1384.      will selection this option.
  1385.           Additionally, the initial character of each selection may be
  1386.      highlighted.  If so, pressing the corresponding character will
  1387.      automatically select this option.
  1388.           Finally, even if the leading characters of each selection are not
  1389.      so highlighted, you may "step" through the selections by pressing
  1390.      letter keys.  The menubar will move to the next selection which starts
  1391.      with the letter pressed.  If necessary, the menubar will wrap to the
  1392.      top of the list (Bingo will beep in this case).  In the case of the
  1393.      directory picker, the leading '\' characters of directory entries will
  1394.      be ignored.
  1395.           As is the custom, the <Escape> key will abort the operation.
  1396.  
  1397.  
  1398.  
  1399.  
  1400.  
  1401.  
  1402.  
  1403.  
  1404.  
  1405.  
  1406.  
  1407.  
  1408.  
  1409.  
  1410.  
  1411.  
  1412.  
  1413.  
  1414.  
  1415.  
  1416.  
  1417.  
  1418.  
  1419.  
  1420.                            Bingo 2.11 Reference Manual
  1421.                                        22
  1422.  
  1423.  
  1424.  
  1425.  
  1426.      Directory Lister
  1427.      ----------------
  1428.           One of the extremely useful features of Bingo is its directory
  1429.      lister.  Often, Bingo will ask for a filename.  If the name you give
  1430.      matches more than one file, in the case of wildcards, for instance,
  1431.      the lister will appear with a list of matches and all subdirectories
  1432.      in the current directory.  There are several features embedded in this
  1433.      lister to assist you in choosing a file. 
  1434.           First, all subdirectory entries in the current directory will are
  1435.      shown at the top, with a '\' character preceding them.  Selecting any
  1436.      of these will cause the lister to change to that directory.
  1437.           Second, pressing a letter causes the Lister to move to the next
  1438.      filename whose first character matches the letter pressed.  A beep
  1439.      will sound if the search wraps around to the beginning.
  1440.           The list is sorted alphabetically by name, but subdirectory
  1441.      entries come first.  The last entry is always the New Specification
  1442.      entry, which allows you to type in a new specification, perhaps
  1443.      another drive if it is necessary. 
  1444.           You have 2 choices in the directory lister other than choosing a
  1445.      file.  The second-last option in the list, "Load All Matching Files",
  1446.      will, as you might guess, load all the files shown in the list.  It
  1447.      will not attempt to load subdirectories.  The last option, "New File
  1448.      Spec", allows you to re-choose the directory specification.
  1449.  
  1450.  
  1451.  
  1452.  
  1453.  
  1454.  
  1455.  
  1456.  
  1457.  
  1458.  
  1459.  
  1460.  
  1461.  
  1462.  
  1463.  
  1464.  
  1465.  
  1466.  
  1467.  
  1468.  
  1469.  
  1470.  
  1471.  
  1472.  
  1473.  
  1474.  
  1475.  
  1476.  
  1477.  
  1478.                            Bingo 2.11 Reference Manual
  1479.                                        23
  1480.  
  1481.  
  1482.  
  1483.  
  1484.      Bingo and File Names
  1485.      --------------------
  1486.           Many times during normal operation, Bingo will ask you for a
  1487.      filename.  Bingo potentially handles filenames slightly differently
  1488.      than plain vanilla DOS.  In particular, let's examine the difference
  1489.      between
  1490.  
  1491.           'thisfile'          &         'thisfile.'
  1492.  
  1493.           The first does not contain a period.  In this case, Bingo will do
  1494.      two things.  First, it will, for each defined default extension, check
  1495.      if the file with that extension exists.  If it does, it will use that
  1496.      filename.  Possibly, on of the default extensions is '.*'.  This would
  1497.      lead you to a directory list picker.  
  1498.           The second contains the trailing period, and so will be used as
  1499.      is.  So, in order to specify a file ignoring the default extensions,
  1500.      you must add the trailing period.
  1501.           Additionally, Bingo accepts either '/' or '\' characters as file
  1502.      delimiters.  This will make life a little easier on those of us who
  1503.      use UNIX systems regularly.  Finally, version 2.10 allows the use of
  1504.      the '..' and '.' directory primitives.
  1505.  
  1506.  
  1507.  
  1508.  
  1509.  
  1510.  
  1511.  
  1512.  
  1513.  
  1514.  
  1515.  
  1516.  
  1517.  
  1518.  
  1519.  
  1520.  
  1521.  
  1522.  
  1523.  
  1524.  
  1525.  
  1526.  
  1527.  
  1528.  
  1529.  
  1530.  
  1531.  
  1532.  
  1533.  
  1534.  
  1535.  
  1536.                            Bingo 2.11 Reference Manual
  1537.                                        24
  1538.  
  1539.  
  1540.  
  1541.  
  1542.      The Status Line
  1543.      ---------------
  1544.           On the bottom line of each window in Bingo's display is the
  1545.      status line.  This line communicates several valuable pieces of
  1546.      information.  On the left side of the line, the current line and
  1547.      column are displayed.  Next are a series of flags:
  1548.                  a     Autoindent
  1549.                   b     Box Draw Mode
  1550.                  c     C mode 
  1551.                  i     Insert mode
  1552.                  m     Matching Mode
  1553.                  r     Recording Macro
  1554.                  t     Smart Tabs
  1555.                  w     Wordwrap
  1556.                  z     Zoom mode
  1557.      For each of these flags, if the letter is capitalized, it indicates
  1558.      that the toggle is on, while a lowercase character indicates the
  1559.      option is toggled off.
  1560.           Next you will see something looking like [x/y] where 'y' is the
  1561.      number of files in the ring, and 'x' is the position of the current
  1562.      file in the ring.
  1563.           Finally, the full pathname comes.  If it is prefaced with an
  1564.      asterisk '*', it means the file has been modified.
  1565.           At the end of one of the on screen status lines, you will see
  1566.      either one or three little pyramids.  If there is a single pyramid,
  1567.      that means it is not the active window.  If there are three pyramids,
  1568.      they tell you which is the active window.  If the three pyramids are
  1569.      pointing up, the full-width window above the status line is the
  1570.      current window.  If the three pyramids point to the left, this means
  1571.      that of the two windows above the status line, the one on the left is
  1572.      the active window.  If the three pyramids point to the right, the
  1573.      window on the right is active.
  1574.           The same rules concerning the direction of the pyramids hold for
  1575.      inactive status lines, except that only one pyramid will be present.
  1576.           If this all sounds complicated, don't worry.  Open a few windows
  1577.      and move among them; it will become much clearer.
  1578.           Finally, on the right end of the current status line, a 'T' or
  1579.      'F' character will be shown.  This represent whether the last
  1580.      operation Bingo executed returned a value of True or False; i.e.,
  1581.      whether it worked.  This does not have a major impact at the moment,
  1582.      but in future versions it will.
  1583.  
  1584.  
  1585.  
  1586.  
  1587.  
  1588.  
  1589.  
  1590.  
  1591.  
  1592.  
  1593.  
  1594.                            Bingo 2.11 Reference Manual
  1595.                                        25
  1596.  
  1597.  
  1598.  
  1599.  
  1600.      KEYCFG: The Keyboard Configuration Program
  1601.      ------------------------------------------
  1602.           KEYCFG is the program used to create a keyboard configuration
  1603.      which the Bingo executable can utilize.  The supplied configuration
  1604.      files (BINGO.CFG, EMACS.CFG, possibly others) give a good example of
  1605.      how to set up the file, so this section will simply go over the high
  1606.      points again.
  1607.           KEYCFG is invoked as follows:
  1608.  
  1609.                KEYCFG <configuration name> <keyset filename>
  1610.  
  1611.      <configuration name> is the name of the text configuration source file
  1612.      you wish KEYCFG to read, and <keyset filename> is the name you wish
  1613.      KEYCFG to write the compiled keyboard setup to.  The default keyset
  1614.      file which Bingo looks for on startup is KEYCFG.SET.  Bingo will look
  1615.      first in the current directory, then in Bingo's own home directory. 
  1616.      Alternate keyset files can be loaded from within Bingo using the
  1617.      'key_set_load' function.
  1618.  
  1619.      Key Names
  1620.      ---------
  1621.      f1-f10    are the function keys
  1622.      !f1-!f10  are the shifted function keys
  1623.      @f1-@f10  are the control function keys
  1624.      #f1-#f10  are the alt function keys
  1625.      @<key>    is the control-<key> combination
  1626.      #<key>    is the alt-<key> combination
  1627.      <key>     is a simple key
  1628.  
  1629.      These are named keys:
  1630.  
  1631.           backspace                          up_arrow
  1632.           backtab                            down_arrow
  1633.           tab                                shift_insert
  1634.           escape                             shift_delete
  1635.           ctrl_backspace                     shift_home
  1636.           return                             shift_end
  1637.           ctrl_return                        shift_pgup
  1638.           alt_return                         shift_pgdn
  1639.           ctrl_tab                           shift_right_arrow
  1640.           alt_tab                            shift_left_arrow
  1641.           alt_equal                          shift_up_arrow
  1642.           alt_minus                          shift_down_arrow
  1643.           insert                             ctrl_insert
  1644.           delete                             ctrl_delete
  1645.           home                               ctrl_home
  1646.           end                                ctrl_end
  1647.           pgup                               ctrl_pgup
  1648.           pgdn                               ctrl_pgdn
  1649.           right_arrow                        ctrl_right_arrow
  1650.           left_arrow                         ctrl_left_arrow
  1651.  
  1652.                            Bingo 2.11 Reference Manual
  1653.                                        26
  1654.  
  1655.  
  1656.  
  1657.  
  1658.           ctrl_up_arrow
  1659.           ctrl_down_arrow
  1660.           keypad_plus
  1661.           keypad_minus
  1662.           keypad_divide
  1663.           keypad_aster
  1664.           keypad_return
  1665.           ctrl_keypad_plus
  1666.           ctrl_keypad_minus
  1667.           ctrl_keypad_divide
  1668.           ctrl_keypad_aster
  1669.           ctrl_keypad_return
  1670.           alt_keypad_plus
  1671.           alt_keypad_minus                   Note:  The keynames with
  1672.           alt_keypad_divide                  'grey' in them, as well as
  1673.           alt_keypad_aster                   F11, F12, and several others,
  1674.           alt_keypad_return                  denote keys which are
  1675.           grey_up_arrow                      available only if you have an
  1676.           grey_down_arrow                    extended keyboard, and you
  1677.           grey_left_arrow                    have the 'Use Extended
  1678.           grey_right_arrow                   Keyboard Bios' option turned
  1679.           grey_delete                        on.
  1680.           grey_end
  1681.           grey_home
  1682.           grey_insert
  1683.           grey_pgup
  1684.           grey_pgdn
  1685.           ctrl_grey_up_arrow
  1686.           ctrl_grey_down_arrow
  1687.           ctrl_grey_left_arrow
  1688.           ctrl_grey_right_arrow
  1689.           ctrl_grey_delete
  1690.           ctrl_grey_end
  1691.           ctrl_grey_home
  1692.           ctrl_grey_insert
  1693.           ctrl_grey_pgup
  1694.           ctrl_grey_pgdn
  1695.           alt_grey_up_arrow
  1696.           alt_grey_down_arrow
  1697.           alt_grey_left_arrow
  1698.           alt_grey_right_arrow
  1699.           alt_grey_delete
  1700.           alt_grey_end
  1701.           alt_grey_home
  1702.           alt_grey_insert
  1703.           alt_grey_pgup
  1704.           alt_grey_pgdn
  1705.  
  1706.  
  1707.  
  1708.  
  1709.  
  1710.                            Bingo 2.11 Reference Manual
  1711.                                        27
  1712.  
  1713.  
  1714.  
  1715.  
  1716.           The configuration file itself consists of lines of the format:
  1717.  
  1718.           <key specifier> <function identifier>
  1719.      or
  1720.           <key specifier> macro <macro list>
  1721.      or
  1722.           <key specifier> <character>
  1723.      or 
  1724.           ; <comment text>
  1725.  
  1726.      A line starting with a space is a continuation of the previous line.
  1727.  
  1728.           <key specifier> is either a simple <key name>, or two key names
  1729.      strung together as <key name>+<key name>.  For instance, for you
  1730.      Wordstar people, control-k q would be entered as
  1731.  
  1732.           @k+q
  1733.  
  1734.      Note: in this case, the Bingo will recognize both the sequence @k+q
  1735.      and @k+Q as the same thing -- case is not significant.
  1736.  
  1737.           The <macro list> is a list of 0 or more function descriptors, as
  1738.      listed in the Function List section, and 0 or more literal
  1739.      occurrences, and 0 or more named keys, in any order.  The literals
  1740.      must be enclosed in single quotes.  The literals will occur in the
  1741.      macro exactly as if they had been typed.  For instance, the line
  1742.  
  1743.           f1    macro 'Chris' return
  1744.  
  1745.      would define the f1 key as my name followed by a return.
  1746.  
  1747.           The <character> is any printable ASCII character, entered without
  1748.      quotes.  For instance, 
  1749.  
  1750.           <    ,
  1751.  
  1752.      would redefined the less-than symbol to be the comma.  This
  1753.      translation will occur during general editing, as well as in the
  1754.      search and replace string-entry boxes.  Everywhere else it will be
  1755.      ignored.
  1756.  
  1757.  
  1758.  
  1759.  
  1760.  
  1761.  
  1762.  
  1763.  
  1764.  
  1765.  
  1766.  
  1767.  
  1768.                            Bingo 2.11 Reference Manual
  1769.                                        28
  1770.  
  1771.  
  1772.  
  1773.  
  1774.           The following macro would define the Alt-C key to save all
  1775.      current modified files, execute the make command while swapping Bingo
  1776.      out to disk, saving the errors in the ERRS file, then load the ERRS
  1777.      file.
  1778.  
  1779.           #c        macro save_all swap_execute 'make > errs' return return
  1780.                     load_file 'errs.' return
  1781.  
  1782.           A more interesting variant of this is the one I used prior to
  1783.      installing the auto-error processing:
  1784.  
  1785.           #c        macro modify_save_all swap_execute 'make > errs' return
  1786.                     return window_bottom load_file 'errs.' return
  1787.  
  1788.      This version will attempt to put the errors file in the bottom-most
  1789.      window, and it will initially only save those files as have been
  1790.      modified.
  1791.           After adding  the auto-error processing, I added a more complex
  1792.      version of this macro:
  1793.  
  1794.           #c        macro modify_save_all swap_execute 'make > errs' return
  1795.                     return window_one window_split load_file 'errs.' return
  1796.                     window_previous window_resize down_arrow down_arrow
  1797.                     down_arrow down_arrow down_arrow down_arrow return
  1798.                     setup_err_parse 'errs.' return return next_error
  1799.  
  1800.      This version saves all modified files, executes MAKE as before, and
  1801.      returns.  When it returns, it makes sure there is but one window,
  1802.      splits the current window, and loads in the ERRS file.  It then
  1803.      resizes it so the bottom window is smaller, resets the error parsing
  1804.      to the ERRS file, then searches for the next (first) error.
  1805.           This last version is very sweet to use if you have a compiler
  1806.      which generates agreeable error files.  Bingo will work with most
  1807.      compilers I have come across, including the Borland and Microsoft
  1808.      compilers/assemblers.  With the Microsoft tools, you may have to tweak
  1809.      the compile flags a bit to get a usable format.
  1810.  
  1811.      'open_end' Identifier
  1812.      ---------------------
  1813.           KEYCFG allows the use of the 'open_end' identifier in macros to
  1814.      force Bingo to fetch string input from the keyboard.  For example:
  1815.  
  1816.           f1   macro search open_end 'i' return
  1817.  
  1818.  
  1819.  
  1820.  
  1821.  
  1822.  
  1823.  
  1824.  
  1825.  
  1826.                            Bingo 2.11 Reference Manual
  1827.                                        29
  1828.  
  1829.  
  1830.  
  1831.  
  1832.      will execute the search function, wait for the user to input the
  1833.      target string, then input 'i' for the search modifier and do the
  1834.      search.
  1835.           'open_end' is effective only for string input --- single key
  1836.      input situations will not respond to it.
  1837.  
  1838.      'cur_file' Identifier
  1839.      ---------------------
  1840.           KEYCFG also allows the use of the 'cur_file' identifier in macros
  1841.      to expand into the current file's name (less path) in string input. 
  1842.      For example:
  1843.  
  1844.           f1   macro load_file cur_file return
  1845.  
  1846.      will force the reload of the current file, providing it is located in
  1847.      the current directory.  NOTE:  There was a bug related to 'cur_file'
  1848.      in version 2.01; basically, if it referenced a filename longer than 11
  1849.      characters (FOOBARED.TXT), bango, you were sunk.  
  1850.  
  1851.  
  1852.  
  1853.  
  1854.  
  1855.  
  1856.  
  1857.  
  1858.  
  1859.  
  1860.  
  1861.  
  1862.  
  1863.  
  1864.  
  1865.  
  1866.  
  1867.  
  1868.  
  1869.  
  1870.  
  1871.  
  1872.  
  1873.  
  1874.  
  1875.  
  1876.  
  1877.  
  1878.  
  1879.  
  1880.  
  1881.  
  1882.  
  1883.  
  1884.                            Bingo 2.11 Reference Manual
  1885.                                        30
  1886.  
  1887.  
  1888.  
  1889.  
  1890.      KEYCFG Command Line Options
  1891.      ----------------------------
  1892.           KEYCFG recognizes three command line options.  One is a shortcut:
  1893.  
  1894.           keycfg !
  1895.  
  1896.      tells KEYCFG to assume the name of the configuration file is
  1897.      BINGO.CFG, and that the keyset file is KEYCFG.SET.  I put this in
  1898.      primarily for my own use, as I run KEYCFG often during development.
  1899.  
  1900.           'KEYCFG names' will provide an alphabetical list of all of the
  1901.      function names which are currently recognized.  Useful to have.
  1902.  
  1903.           Likewise 'KEYCFG keys' will list all recognized keynames.  Also
  1904.      useful to have.
  1905.  
  1906.  
  1907.  
  1908.  
  1909.  
  1910.  
  1911.  
  1912.  
  1913.  
  1914.  
  1915.  
  1916.  
  1917.  
  1918.  
  1919.  
  1920.  
  1921.  
  1922.  
  1923.  
  1924.  
  1925.  
  1926.  
  1927.  
  1928.  
  1929.  
  1930.  
  1931.  
  1932.  
  1933.  
  1934.  
  1935.  
  1936.  
  1937.  
  1938.  
  1939.  
  1940.  
  1941.  
  1942.                            Bingo 2.11 Reference Manual
  1943.                                        31
  1944.  
  1945.  
  1946.  
  1947.  
  1948.      Bingo & The Mouse
  1949.      -----------------
  1950.           Bingo has the capacity to make extensive use of a Microsoft
  1951.      (trademark, copyright, and kudos to Microsoft) compatible mouse,
  1952.      should you have one installed.  In order for the mouse to work, three
  1953.      things must be true. 
  1954.  
  1955.           1) It must be connected to the computer properly.  See your mouse
  1956.      manual for instructions.
  1957.           2) You must have your mouse driver installed properly.  Again,
  1958.      see your mouse manual for instructions on how to accomplish this.
  1959.           3) You must have the 'Use Mouse' option turned on, found in the
  1960.      General configuration menu. Bingo is shipped with mouse use turned on.
  1961.  
  1962.           Bingo is designed to allow users of three button mice to make
  1963.      full use of all three buttons (I have a three button mouse).  However,
  1964.      users with two button mice will only lose a little functionality when
  1965.      it comes to programming the mouse, and no functionality at all when it
  1966.      comes to dealing with the menus and dialogue boxes.
  1967.           It is generally easy to tell if the mouse is working; the status
  1968.      line will have four additional "buttons", each consisting of three
  1969.      arrows enclosed in square braces.  Also, to conserve space, the
  1970.      filename will be shown without its full path.
  1971.  
  1972.      The Mouse Cursor
  1973.      ----------------
  1974.           The mouse cursor will appear on your screen as a solid, non-
  1975.      blinking block, which changes color depending on the underlying color. 
  1976.      It should be possible to move the cursor over the entire screen.  If
  1977.      the mouse cursor is present, it means that a response with the mouse
  1978.      is possible.  If it is not visible, this means that at this point, no
  1979.      mouse response makes sense.
  1980.  
  1981.      The Mouse at the General Editing Level
  1982.      --------------------------------------
  1983.           At the general editing screen, Bingo has 20 programmable mouse
  1984.      events.   The programmable events are handled exactly as key
  1985.      assignments are handled: through KEYCFG.  These are the mouse names:
  1986.  
  1987.                              Mouse Event Identifiers
  1988.  
  1989.           Three_buttons                 Left_right_buttons
  1990.           Left_middle_buttons           Multiple_left_button
  1991.           Single_left_button            Right_middle_buttons
  1992.           Multiple_right_button         Single_right_button
  1993.           Multiple_middle_button        Single_middle_button
  1994.  
  1995.           Single_pyramids               Multiple_pyramids
  1996.           Single_up_arrow               Single_down_arrow
  1997.           Single_left_arrow             Single_right_arrow
  1998.           Multiple_up_arrow             Multiple_down_arrow
  1999.  
  2000.                            Bingo 2.11 Reference Manual
  2001.                                        32
  2002.  
  2003.  
  2004.  
  2005.  
  2006.           Multiple_left_arrow           Multiple_right_arrow
  2007.  
  2008.           The first ten are concerned simply with what happens when you
  2009.      press the corresponding button sequence.  Note that users of two-
  2010.      button devices will only be able to utilize five of these, those
  2011.      dealing with the left and right buttons.
  2012.           The second ten refer to the 5 "hot spots" on the active status
  2013.      line.  There are two for each button, one for a single click and one
  2014.      for a double click.
  2015.  
  2016.           Now that you know of these event names, what can you do with
  2017.      them?  Well, you can assign them anything you could assign a key.  In
  2018.      addition, two special functions are provided to help deal with the
  2019.      mouse:
  2020.  
  2021.           snap_to_mouse_xy:
  2022.                this function moves the cursor to the current mouse
  2023.                position.  If necessary, it will change the active window.
  2024.  
  2025.           mouse_scroll:
  2026.                this function is kind of an expanded snap_to_mouse_xy. 
  2027.                First, it moves the cursor to the mouse position.  Then, as
  2028.                long as a mouse button is held down, the screen will scroll
  2029.                in the following manner:
  2030.                     1) If you are in the upper 1/8 of the screen you will
  2031.                     scroll up.
  2032.                     2) If you are in the next 1/8 of the screen, the screen
  2033.                     will scroll up, but more slowly.
  2034.                     3) If you are in the lower 1/8 of the screen you will
  2035.                     scroll down.
  2036.                     4) If you are in the next lower 1/8 of the screen, the
  2037.                     screen will scroll down, but more slowly.
  2038.                If you are elsewhere on the screen, you simply move the
  2039.                cursor about.  This makes 'click & drag' operations
  2040.                possible.
  2041.  
  2042.  
  2043.      Combining these with other functions, quite powerful mouse events can
  2044.      be programmed.  For example:
  2045.  
  2046.      Single_left_button       snap_to_mouse_xy
  2047.      Single_right_button      macro snap_to_mouse_xy point_mark
  2048.      Multiple_left_button     macro snap_to_mouse_xy linemark
  2049.                                    mouse_scroll linemark
  2050.  
  2051.      The first simply moves the cursor, while the second moves the cursor
  2052.      and drops a point mark.  The third lets you scroll about the file,
  2053.      delineating an area to be marked.
  2054.  
  2055.           The ten "hot spots" can also be programmed as if they were keys.
  2056.        
  2057.  
  2058.                            Bingo 2.11 Reference Manual
  2059.                                        33
  2060.  
  2061.  
  2062.  
  2063.  
  2064.      Single_down_arrow        cursor_down
  2065.      Double_down_arrow        down_page
  2066.  
  2067.      Here, this has defined the down arrow button to respond with a
  2068.      cursor_down if a single click occurs on it, or a down_page if a double
  2069.      click occurs on it.  
  2070.           These "buttons" work a little differently than you might expect -
  2071.      - as long as you hold the mouse button down, the function will
  2072.      repetitively execute.  So, if you double click on the down arrow
  2073.      "button" and hold the second click down, you will see the file whiz by
  2074.      at a truly astonishing speed.  The speed with which the functions are
  2075.      repetitively executed can be governed using the 'conf_mdelay'
  2076.      function.
  2077.           These 20 events give you the user an unparalleled degree of
  2078.      control over how the mouse responds.
  2079.  
  2080.      The Mouse and The Menus
  2081.      -----------------------
  2082.           The mouse would not be very useful if it was not well integrated
  2083.      into the menu system.  Great pains have been taken to make mouse use
  2084.      easy and intuitive with respect to the menu system.  
  2085.           It is very simple.  The left mouse button selects something, and
  2086.      the right mouse button closes the current menu.  However, there are a
  2087.      few refinements.
  2088.           If the item you select with a single left click is in the
  2089.      rightmost menu, the effect is the same as if you had moved to that
  2090.      selection and hit <return>.  If the item is not the rightmost menu,
  2091.      say the it is in the Main menu and you currently have the Block menu
  2092.      open, then you will simply be moved to the selection, with the other
  2093.      menus closed for you.  However, no equivalent <return> will be
  2094.      executed. 
  2095.           If, however, you use a double left click, the selection will be
  2096.      executed regardless of where it was on the menu hierarchy.  Any extra
  2097.      open menus will be closed to bring you to the selected level.
  2098.           Likewise, a single right click will close the current menu. 
  2099.      However, a double click will close *all* open menus.
  2100.           Note that this gives you some capabilities which are not
  2101.      available from the keyboard.
  2102.           If the above sounds complicated, don't worry.  In practice, it is
  2103.      very easy.  I would suggest you restrict yourself to single clicks
  2104.      when you begin, then move to double clicks when you are sure of what a
  2105.      single click would do.  You will very quickly find that the menus are
  2106.      effortlessly intertwined with the mouse.
  2107.  
  2108.  
  2109.  
  2110.  
  2111.  
  2112.  
  2113.  
  2114.  
  2115.  
  2116.                            Bingo 2.11 Reference Manual
  2117.                                        34
  2118.  
  2119.  
  2120.  
  2121.  
  2122.      The Mouse & Dialogue Boxes
  2123.      --------------------------
  2124.           Throughout Bingo, you will encounter many dialogue boxes.  There
  2125.      are four main types, and all support mouse use where appropriate. They
  2126.      are:
  2127.  
  2128.           String Entry Boxes:
  2129.  
  2130.           These are the boxes which ask you for string input.  The easiest
  2131.      example is when Bingo asks you for a filename.  There are only a few
  2132.      mouse options in these boxes; most of the time you must enter text
  2133.      from the keyboard.
  2134.           However, there are three supported button events.  A single left
  2135.      click has the same effect as a <return>; it accepts the current
  2136.      string.  A double left click wipes out the string; it in effect is a
  2137.      Control-Y equivalent.  Finally, any right button click is the
  2138.      equivalent of an <Escape> key.
  2139.  
  2140.           Yes/No Boxes:
  2141.  
  2142.           These are the boxes which require a yes or no answer to a
  2143.      question.  The easiest example of this is in the configuration
  2144.      options, where you are asked if you wish to toggle the option.  By
  2145.      placing the mouse cursor over the [Yes] selection and pressing the
  2146.      left mouse button, you answer in the affirmative.  Likewise, placing
  2147.      the mouse cursor over the [No] selection and pressing the left button
  2148.      answers in the negative.  
  2149.           As usual, pressing the right mouse button is equivalent to the
  2150.      <Escape> key.
  2151.  
  2152.           Non-Editable Display Boxes:
  2153.  
  2154.           The easiest example of this type of box is the Help box, or the
  2155.      Info box.  If there are more lines than fit within the box, up and
  2156.      down arrow boxes will appear in the upper and lower right hand corners
  2157.      of the box.  By moving the mouse cursor to the corresponding box and
  2158.      holding a mouse button down, the display will scroll in the
  2159.      corresponding direction.
  2160.           As expected, the right button exits.
  2161.  
  2162.           List-Picking Boxes:
  2163.  
  2164.           The best example of this type of dialogue box occurs when the
  2165.      'directory list picker' pops up.  Here, as in the Non-Editable Display
  2166.      Boxes, up and down arrow boxes will appear if necessary.  Furthermore,
  2167.      moving the mouse cursor to a particular selection and pressing a
  2168.      single left key will move the menubar to that selection.
  2169.           Moving the mouse cursor to a particular selection and double left
  2170.      clicking will select that particular selection as if you had moved the
  2171.      menubar there and typed <return>.
  2172.           As always, the right button is the equivalent of typing <Escape>.
  2173.  
  2174.                            Bingo 2.11 Reference Manual
  2175.                                        35
  2176.  
  2177.  
  2178.  
  2179.  
  2180.      The Mouse and The ASCII Table
  2181.      -----------------------------
  2182.           The mouse is also tightly integrated with the ASCII table
  2183.      function, 'ascii_table'.  Here, single left clicking on a character
  2184.      moves the cursor to it (updating the display).  Double left clicking
  2185.      selects the character and adds it to the string.
  2186.           Single left clicking on the [Bspace] bar is equivalent to typing
  2187.      <backspace>; it removes one character from the string.  A double left
  2188.      click on this spot zeroes the string entirely.
  2189.           As always, clicking the right button is the equivalent of typing
  2190.      <Escape>.
  2191.  
  2192.  
  2193.  
  2194.  
  2195.  
  2196.  
  2197.  
  2198.  
  2199.  
  2200.  
  2201.  
  2202.  
  2203.  
  2204.  
  2205.  
  2206.  
  2207.  
  2208.  
  2209.  
  2210.  
  2211.  
  2212.  
  2213.  
  2214.  
  2215.  
  2216.  
  2217.  
  2218.  
  2219.  
  2220.  
  2221.  
  2222.  
  2223.  
  2224.  
  2225.  
  2226.  
  2227.  
  2228.  
  2229.  
  2230.  
  2231.  
  2232.                            Bingo 2.11 Reference Manual
  2233.                                        36
  2234.  
  2235.  
  2236.  
  2237.  
  2238.      Bingo and 4Dos
  2239.      --------------
  2240.           When version 4.0 of JPSoft's excellent command interpreter was
  2241.      released, users ran into a conflict using Bingo 2.10 with it.  This
  2242.      stemmed from the fact that the core 4Dos executable is 4DOS.COM. 
  2243.      While this file is a .COM file in name, it is actually a 100k+ .EXE
  2244.      format file.  Unfortunately, the spawn() routines used in Bingo
  2245.      currently use the file extension to determine the file type.  Hence,
  2246.      all sorts of unpredictable results occured.
  2247.           JPSoft Technical Support had the following solution:
  2248.  
  2249.           Rename 4DOS.COM to 4DOS.EXE.  
  2250.  
  2251.      Correspondingly, change the 
  2252.           shell=D:\path\4dos.com
  2253.      to
  2254.           shell=D:\path\4dos.exe
  2255.      in your CONFIG.SYS file.  
  2256.  
  2257.           The only side effect noted of this is that 4Dos will not set the
  2258.      COMSPEC environment variable by itself.  So you will need to add
  2259.           COMSPEC=D:\path\4dos.exe
  2260.      to your AUTOEXEC.BAT file.  
  2261.  
  2262.           This should clear up any problems with 4Dos or any like program.
  2263.  
  2264.  
  2265.  
  2266.  
  2267.  
  2268.  
  2269.  
  2270.  
  2271.  
  2272.  
  2273.  
  2274.  
  2275.  
  2276.  
  2277.  
  2278.  
  2279.  
  2280.  
  2281.  
  2282.  
  2283.  
  2284.  
  2285.  
  2286.  
  2287.  
  2288.  
  2289.  
  2290.                            Bingo 2.11 Reference Manual
  2291.                                        37
  2292.  
  2293.  
  2294.  
  2295.  
  2296.                                   Basic Editing
  2297.                                   -------------
  2298.  
  2299.           Basic editing concerns deletion and insertion of characters. 
  2300.      Bingo provides a number of ways to delete text without recourse to the
  2301.      block operation.  Five of these operations push deleted text onto the
  2302.      unkill stack -- 'del_eol', 'del_line', 'del_bol', 'del_word_lt', and
  2303.      'del_word_rt'.   
  2304.  
  2305.      The Destructive Backspace
  2306.      -------------------------
  2307.           Bingo supports three backspace deletion modes.  The first is the
  2308.      old favorite, the simple one character destructive backspace.    The
  2309.      second mode destructively deletes back to the previous tab stop,
  2310.      provided there are only spaces in the way.  If there are non-space
  2311.      characters in the way, it functions as in mode 1.
  2312.           The final mode deletes all the way to the left margin (column 1),
  2313.      provided it consists only of spaces.  Again, if there are non-space
  2314.      characters, it functions as mode 2.
  2315.  
  2316.      Delete EOL vs. Delete Line vs. Delete BOL
  2317.      -----------------------------------------
  2318.           The 'del_eol' function deletes the remainder of the line from the
  2319.      cursor position.  If you are on the end of a line, it brings the next
  2320.      line up to the current position.
  2321.           The 'del_line' simple deletes the entire current line, no
  2322.      questions asked.  
  2323.           The 'del_bol' deletes from the current position back to the
  2324.      beginning of the line.  If you are at the begging of a line, nothing
  2325.      happens.
  2326.           In all three cases, the deleted text is pushed onto the undo
  2327.      stack.
  2328.  
  2329.      Deleting Words
  2330.      --------------
  2331.           The 'del_word_lt' & 'del_word_rt' functions delete to the start
  2332.      of the next word, left or right, respectively.  What is a word?  This
  2333.      is up to you.  You can configure the string describing what delimits a
  2334.      word via the 'conf_word' function.  The deleted text is pushed onto
  2335.      the unkill stack;
  2336.  
  2337.  
  2338.  
  2339.  
  2340.  
  2341.  
  2342.  
  2343.  
  2344.  
  2345.  
  2346.  
  2347.  
  2348.                            Bingo 2.11 Reference Manual
  2349.                                        38
  2350.  
  2351.  
  2352.  
  2353.  
  2354.                                   File Handling
  2355.                                   -------------
  2356.  
  2357.           Bingo has extensive file handling capabilities, more than almost
  2358.      any other editor available.  Literally, there is little you could want
  2359.      to do with a file which Bingo will not let you do.  
  2360.           A couple of words are in order about the file format.  Bingo
  2361.      cares not at all if the file you are reading is delimited by carriage-
  2362.      return/linefeed pairs or just linefeed characters; Bingo will read
  2363.      both with equal aplomb.  Similarly, Bingo doesn't object to files
  2364.      ending with the EOF character (ASCII 26).  On output, the output
  2365.      format is governed by the configuration settings accessible through
  2366.      the 'conf_eof' and 'conf_lfs' functions. 
  2367.  
  2368.           Here are some of the high points in file handling with Bingo.
  2369.  
  2370.      Edit_file & Load_file
  2371.      ---------------------
  2372.           Editing a file with an 'edit_file' function may not always
  2373.      physically load the file from disk.  If the asked for name is already
  2374.      being edited, you will simply be moved to the proper buffer. 
  2375.      Conversely, loading a file with the 'load_file' function will always
  2376.      load the file from disk; if it exists in the ring currently, the in-
  2377.      memory version will be killed first.
  2378.  
  2379.      Choose_file
  2380.      -----------
  2381.           The 'choose_file' function pops up a list of the current files in
  2382.      the ring, and allows you to choose from among them.  Also, the option
  2383.      to edit a new file exists; this option is equivalent to the
  2384.      'edit_file' function.
  2385.  
  2386.      Rename_file
  2387.      -----------
  2388.           The 'rename_file' function changes nothing on the disk until you
  2389.      save the file explicitly; however, it does change the name of the in-
  2390.      memory file.
  2391.  
  2392.      Quit
  2393.      ----
  2394.           This is the usual way to exit a file.  If the file has not been
  2395.      modified, Bingo will immediately quit the file.  If the file has been
  2396.      modified, Bingo will ask you if you wish to save the file.  Remember
  2397.      that in this case, a <return> indicates a yes answer.
  2398.  
  2399.  
  2400.  
  2401.  
  2402.  
  2403.  
  2404.  
  2405.  
  2406.                            Bingo 2.11 Reference Manual
  2407.                                        39
  2408.  
  2409.  
  2410.  
  2411.  
  2412.      Quit_all
  2413.      --------
  2414.           This function repeatedly does a 'quit_file' on each file in the
  2415.      ring.  You can abort the operation at any time by typing <Escape> in
  2416.      response to a query.
  2417.  
  2418.      Abort & Abort_all
  2419.      -----------------
  2420.           These are very dangerous functions.  'abort' exits the file, no
  2421.      questions asked.  'abort_all' exits the program, no questions asked.
  2422.  
  2423.      Delete_file
  2424.      -----------
  2425.           This is just an easy way to delete an arbitrary file on disk.  No
  2426.      more, no less, but sometimes you do need free up disk space.
  2427.  
  2428.      Zap_file
  2429.      --------
  2430.           This allows you to wipe out the disk copy of the currently active
  2431.      file.  It does nothing to the in-memory version of the file itself.
  2432.  
  2433.      Modify_save & Modify_save_all
  2434.      -----------------------------
  2435.           These functions respectively save the current file or each file
  2436.      if and only if it has been modified.  Useful when saving files to
  2437.      compile, so that only modified files get recompiled.
  2438.  
  2439.      Switch_file
  2440.      -----------
  2441.           This function essentially performs a 'quit_file' followed by an
  2442.      'edit_file'.
  2443.  
  2444.  
  2445.      Clean_file & Clean_all
  2446.      ----------------------
  2447.           These functions allow you to reset the status of the file (or all
  2448.      the files) to unmodified.
  2449.  
  2450.      Pick_file
  2451.      ---------
  2452.           Bingo will, if asked, maintain a list of the 15 most recently
  2453.      edited files.  Based on the setting via the 'conf_name_save' function,
  2454.      the files will be saved in either the current directory or in Bingo's
  2455.      home directory.  'Pick_file' will popup a list of the 15 files, most
  2456.      recent at the top.  By selecting a file, you are invoking the
  2457.      'edit_file' function on it.
  2458.  
  2459.  
  2460.  
  2461.  
  2462.  
  2463.  
  2464.                            Bingo 2.11 Reference Manual
  2465.                                        40
  2466.  
  2467.  
  2468.  
  2469.  
  2470.      Backup_file & Backup_all
  2471.      ------------------------
  2472.           These functions will force a backup attempt of the current file
  2473.      ('backup_file') or each file in the ring ('backup_all').  Only files
  2474.      which have automatic backups turned on will be affected (See the
  2475.      'conf_timed_backups' function.)
  2476.  
  2477.  
  2478.  
  2479.  
  2480.  
  2481.  
  2482.  
  2483.  
  2484.  
  2485.  
  2486.  
  2487.  
  2488.  
  2489.  
  2490.  
  2491.  
  2492.  
  2493.  
  2494.  
  2495.  
  2496.  
  2497.  
  2498.  
  2499.  
  2500.  
  2501.  
  2502.  
  2503.  
  2504.  
  2505.  
  2506.  
  2507.  
  2508.  
  2509.  
  2510.  
  2511.  
  2512.  
  2513.  
  2514.  
  2515.  
  2516.  
  2517.  
  2518.  
  2519.  
  2520.  
  2521.  
  2522.                            Bingo 2.11 Reference Manual
  2523.                                        41
  2524.  
  2525.  
  2526.  
  2527.  
  2528.                                     Searching
  2529.                                     ---------
  2530.  
  2531.           There are two search algorithms present in Bingo.  One is very
  2532.      simple and very fast, and part of it is hand-coded in assembler for a
  2533.      bit more speed yet.  For 95% of what you want to do, it is just right.
  2534.           However, with the advent of version 2.01, a second search
  2535.      algorithm was added; a regular-expression method.  Regular expressions
  2536.      are a mathematical way to describe strings of text, and are very
  2537.      powerful.  Bingo's algorithm is reliable but not overly speedy; I
  2538.      suggest you keep this in mind when using it.
  2539.           If you are not familiar with regular expressions, I am not going
  2540.      to attempt to explain them to you here.  If, however, you have used
  2541.      them before, I will explain the notations I used in coding Bingo's
  2542.      algorithm.
  2543.           To perform a regexp search, use the 'R' modifier on you search
  2544.      (or replace).  If you use this modifier, the string will be
  2545.      interpreted as follows:
  2546.  
  2547.           -    classes, i.e. [0-9] and 'not' classes, i.e [~0-9]
  2548.           -    occurrences of once, once or none (?), one or more (+), none
  2549.      or more (*)
  2550.           -    grouping  {}
  2551.           -    ORing of {} groups |
  2552.           -    wildcard character .
  2553.           -    match begin and end of lines with ^ and $, respectively
  2554.           -    support for debugging regular expression search 
  2555.                patterns
  2556.           -    along with regular expression searches, you can specify the
  2557.                replacement in terms of the matched text.  '@n' in the
  2558.                replacement pattern places the text matching the nth group.
  2559.                '@@' matches the entire matched text. This allows you to do
  2560.                some nifty text manipulation.
  2561.  
  2562.           For some simple examples, see below.
  2563.  
  2564.           It is easy to limit the search area to a specific range by line
  2565.      marking a range of text.  Any search (or replace) which starts within
  2566.      a block will not move past the end of the block.  Basically, this
  2567.      means that no search or replace will continue past the end of a block.
  2568.           The 'C' option in the 'search' function will count the number of
  2569.      occurrences of the target string in the rest of the search area.
  2570.           The 'G'lobal option for search and replace operations starts from
  2571.      the current cursor position, not from the top of the file.
  2572.           Try the Search & Macro capability -- it is sharp.
  2573.  
  2574.  
  2575.  
  2576.  
  2577.  
  2578.  
  2579.  
  2580.                            Bingo 2.11 Reference Manual
  2581.                                        42
  2582.  
  2583.  
  2584.  
  2585.  
  2586.      Regular Expression Search & Replace Examples
  2587.      --------------------------------------------
  2588.           Here are some examples of regular example search and replace.
  2589.  
  2590.      Search for --> [a-z]+/.
  2591.           would match any sequence of one or more letters between 'a' and
  2592.           'z' followed by a single period.
  2593.  
  2594.      Search for --> help[a-z]+/.
  2595.           would match a sequence of 'help' followed by one or more letters
  2596.           then a single period.  It would match 'helpoooooo.' and 'helpp.'
  2597.           but not 'help.'
  2598.  
  2599.      Search for --> 19{87}|{88}
  2600.           would match '19' followed by one occurance of either '87' or
  2601.           '88'.
  2602.  
  2603.      Search for --> 19{87}*|{88}
  2604.           would match '19' followed by none or more occurances of '87' or a
  2605.           single occurance of '88'.  Thus it would match '19',
  2606.           '1987878787', or '1988'.
  2607.  
  2608.      Search for --> .
  2609.           matches any single character. (Note: /. would match a an actual
  2610.           period.)
  2611.  
  2612.      Search for --> ^[a-z]+
  2613.           matches a sequence of 1 or more letters, provided it starts a
  2614.           line.
  2615.  
  2616.      Search for --> ^[a-z]+$
  2617.           matches a sequence of 1 or more letters, provided it starts a
  2618.           line and ends a line.
  2619.  
  2620.      Search for --> ^[a-z]+/.[a-z]+
  2621.           basically matches filenames made up of alpha characters, which
  2622.           are found at the beginning of a line.
  2623.  
  2624.      Search for --> ^$
  2625.           matches a blank line.
  2626.                     
  2627.      Search for --> ^.
  2628.           matches a non-blank line.
  2629.  
  2630.      These last two allow you to do some neat stuff using
  2631.      the macro capability, i.e., apply a macro to every
  2632.      non-blank line.
  2633.  
  2634.  
  2635.  
  2636.  
  2637.  
  2638.                            Bingo 2.11 Reference Manual
  2639.                                        43
  2640.  
  2641.  
  2642.  
  2643.  
  2644.      Search for --> {[a-z]+}{/.}{[a-z]+}
  2645.      Replace with -->  @3.@1
  2646.           This will match a sequence of one or more letters, followed by a
  2647.           period, followed by one or more letters (a filename,
  2648.           essentially).  The replace will put the text matching the 3rd
  2649.           group first, then a period, then the text matching the 1st group. 
  2650.           On a filename, this will have the effect of reversing the order
  2651.           of the name and the extension, i.e:
  2652.  
  2653.                filename.txt
  2654.  
  2655.           would become
  2656.  
  2657.                txt.filename
  2658.  
  2659.           since 'filename' would match the first group and 'txt' matches
  2660.           the third group.  
  2661.  
  2662.  
  2663.  
  2664.  
  2665.  
  2666.  
  2667.  
  2668.  
  2669.  
  2670.  
  2671.  
  2672.  
  2673.  
  2674.  
  2675.  
  2676.  
  2677.  
  2678.  
  2679.  
  2680.  
  2681.  
  2682.  
  2683.  
  2684.  
  2685.  
  2686.  
  2687.  
  2688.  
  2689.  
  2690.  
  2691.  
  2692.  
  2693.  
  2694.  
  2695.  
  2696.                            Bingo 2.11 Reference Manual
  2697.                                        44
  2698.  
  2699.  
  2700.  
  2701.  
  2702.                                    Navigation
  2703.                                    ----------
  2704.  
  2705.           Navigation in Bingo is very straightforward.  You may move in
  2706.      terms of characters, lines, words, windowfuls, and the entire file. 
  2707.      You can also jump to the beginning and end of a marked block. 
  2708.      Finally, you can jump to a specified line, or by a relative number of
  2709.      lines, in the file using the Jump function.
  2710.           In addition, Bingo supports placemarks.  I had never really used
  2711.      placemarks much, or "bookmarks" as they are sometimes called.  But a
  2712.      buddy of mine told me to try them when in big files, and I was
  2713.      impressed.  But the editor I tried them in allowed only one; this is
  2714.      just not enough.  So I went one better.  Actually, I went 9 better.
  2715.           Bingo provides 10 placemarks.  You can drop one, jump to one, or
  2716.      pop up a list of the current placemarks.  Each placemark defines a
  2717.      file, a line, and a column.  When you try to jump to a placemark and
  2718.      the file it pertains to is not in the ring, the file will be fetched.
  2719.  
  2720.  
  2721.  
  2722.  
  2723.  
  2724.  
  2725.  
  2726.  
  2727.  
  2728.  
  2729.  
  2730.  
  2731.  
  2732.  
  2733.  
  2734.  
  2735.  
  2736.  
  2737.  
  2738.  
  2739.  
  2740.  
  2741.  
  2742.  
  2743.  
  2744.  
  2745.  
  2746.  
  2747.  
  2748.  
  2749.  
  2750.  
  2751.  
  2752.  
  2753.  
  2754.                            Bingo 2.11 Reference Manual
  2755.                                        45
  2756.  
  2757.  
  2758.  
  2759.  
  2760.                                  Block Handling
  2761.                                  --------------
  2762.  
  2763.      Marking
  2764.      -------
  2765.           Block marking is extremely flexible.  Three types of marking are
  2766.      supported.  Line marking considers lines to be the smallest
  2767.      indivisible chunks of text.  It is primarily used when editing large
  2768.      sections of program code, since much of this type of editing involves
  2769.      moving lines.
  2770.           Point marking, on the other hand, considers single characters to
  2771.      be the smallest indivisible portions of text.  this is useful for
  2772.      replicating portions of lines, rather than whole lines. 
  2773.           While Point marking "snakes" the mark from one point to the next,
  2774.      Vertical marking lets you define corners of a column-oriented block.
  2775.           As of 2.10c there are two methods of marking, governed by the
  2776.      'conf_automark' function.  If auto-marking is turned off, marking
  2777.      proceeds as follows: go to the beginning of the block you wish to
  2778.      mark; execute the appropriate mark function for the block type you are
  2779.      interested in; move to the end of the block you wish to mark; mark
  2780.      again.
  2781.           If automarking is turned on, things work differently.  Now, when
  2782.      you mark, you turn marking 'on'.  As you move about the file, the
  2783.      block will follow you until you decide to mark the end.  However, you
  2784.      do not have to mark the end of the block; Bingo will simply assume the
  2785.      current position is the other end of the block.
  2786.           You can also use the 'extend_mark' function.  This simply extends
  2787.      the current marking scheme to the current cursor position.  If there
  2788.      is no mark in the file, 'Extend_mark' will display an error message.
  2789.  
  2790.      Operations on Blocks
  2791.      --------------------
  2792.           Bingo supports two slightly different sets of block operations. 
  2793.      The first set will be familiar to users of many programming editors,
  2794.      while the second will bring back memories of any Wordstar compatible
  2795.      editor they may have used.
  2796.           The first set of operations consists of three functions: 'cut',
  2797.      'copy', 'paste'.  'cut' snips the marked region to the block buffer,
  2798.      removing it from the file.  'copy' does the same thing, but it leaves
  2799.      the marked text intact in the file.  In both cases, if nothing is
  2800.      marked and you have this option turned on, Bingo will assume you wish
  2801.      the current line to be linemarked.
  2802.           'paste' is very simple: whatever is currently in the block buffer
  2803.      is placed at the current cursor position, based on the marking method
  2804.      used.  If the contents were point marked, the contents are simply
  2805.      'squirted' into the text.  If the contents were line marked, the lines
  2806.      are inserted above the current line.
  2807.  
  2808.           There is also an alternate type of paste operation, that of
  2809.      'paste_replace'.  In this case, the paste buffer's contents overwrite
  2810.      the needed amount of space in the text, rather than squirting between
  2811.  
  2812.                            Bingo 2.11 Reference Manual
  2813.                                        46
  2814.  
  2815.  
  2816.  
  2817.  
  2818.      existing text.  This type of pasting will only work for Column and
  2819.      Line marked blocks.  Be careful! You can hurt yourself with this one.
  2820.           The second type of block operations available are similar in
  2821.      nature to those used by Wordstar-compatible editors.  Block operations
  2822.      consist of three steps: mark the text, move to the destination
  2823.      position, invoke the function.
  2824.           'block_move' moves the currently marked blocked of text to the
  2825.      current cursor position.  'block_copy' does the same thing, except it
  2826.      leaves a copy behind.
  2827.           'block_delete' is functionally identical to Cut, except that it
  2828.      requires that a block be marked; the setting of the auto linecut
  2829.      toggle has no effect on 'block_delete'.
  2830.  
  2831.      Named Buffers
  2832.      -------------
  2833.           In addition to the default paste buffer, Bingo supports 26 named
  2834.      buffers, 'a'-'z'.  In order to change which buffer is currently in
  2835.      use, use the 'name_buffer' function.  Press the letter of the buffer
  2836.      you want, or <return> for the default buffer.  Until you change the
  2837.      buffer, Bingo will use the currently named buffer for all its
  2838.      operations.  All buffers will be saved when a swapping operation is
  2839.      being done.
  2840.  
  2841.      Miscellaneous Functions
  2842.      -----------------------
  2843.           The 'buffer_info' function displays various pertinent info about
  2844.      all the paste buffers, as well as which buffer is the currently active
  2845.      one.  
  2846.           The 'look_buffer' function will display the current contents of
  2847.      the current paste buffer in a non-editable window, up to the first 100
  2848.      lies.  That should be enough to give you an idea of what is in there.
  2849.           The 'report_bsize' function reports the size of the currently
  2850.      marked block in terms of lines and characters.
  2851.  
  2852.      Emacs_yank
  2853.      ----------
  2854.           This function melds the unkill stack and the paste buffer
  2855.      together in the following manner.  If the most recent block
  2856.      operation/deletion was a block operation, 'emacs_yank' works exactly
  2857.      like 'paste', pushing the paste buffer contents into the text.  If the
  2858.      most recent operation was a deletion (word, line, -eol, -bol),
  2859.      'emacs_yank' works like the 'paste_kill' function, pulling text from
  2860.      the undo stack without disturbing its contents.  This allows you to
  2861.      use the deletion commands to manipulate text in concert with the paste
  2862.      buffer operations.
  2863.  
  2864.  
  2865.  
  2866.  
  2867.  
  2868.  
  2869.  
  2870.                            Bingo 2.11 Reference Manual
  2871.                                        47
  2872.  
  2873.  
  2874.  
  2875.  
  2876.                                     Utilities
  2877.                                     ---------
  2878.  
  2879.           Bingo provides large number of utilities to be used to manipulate
  2880.      text.  Functions are available to:
  2881.  
  2882.           -    change the case of a block
  2883.           -    strip the high bit from characters in a block
  2884.           -    place tabs within text, and expand tabs within text
  2885.           -    shift blocks a certain number of spaces
  2886.           -    align lines with other lines
  2887.           -    sort blocks, in ascending or descending order, on a
  2888.                particular column
  2889.           -    fill a vertically-marked block with a specific character 
  2890.           -    format a paragraph
  2891.           -    count the number of words over a span of lines
  2892.           -    insert the current time and date into the file
  2893.  
  2894.           The big thing with the utilities is: play with them.  They allow
  2895.      you to do some really useful things to your text.  Particularly,
  2896.      entab/detab are very useful when importing files from other
  2897.      systems/editors.  You can take a file with hard tabs in it which
  2898.      assumed a tabsize of 8 characters, detab it, change the tabsize to 3,
  2899.      entab it, and save it ready for another editor which demands hard tabs
  2900.      with a tabsize of 3.
  2901.  
  2902.  
  2903.  
  2904.  
  2905.  
  2906.  
  2907.  
  2908.  
  2909.  
  2910.  
  2911.  
  2912.  
  2913.  
  2914.  
  2915.  
  2916.  
  2917.  
  2918.  
  2919.  
  2920.  
  2921.  
  2922.  
  2923.  
  2924.  
  2925.  
  2926.  
  2927.  
  2928.                            Bingo 2.11 Reference Manual
  2929.                                        48
  2930.  
  2931.  
  2932.  
  2933.  
  2934.                                  Extra Functions
  2935.                                  ---------------
  2936.  
  2937.      Help
  2938.      ----
  2939.           The 'help' function attempts to read the file BINGO.HLP located
  2940.      in the same directory as BE.EXE.  This file can consist of anything
  2941.      you wish, and contain as many lines as you wish (it must fit into
  2942.      memory...).
  2943.  
  2944.      Info
  2945.      ----
  2946.           This function simply brings up some useful info, such as the size
  2947.      each file will be when written to disk, current date and time, etc.
  2948.  
  2949.      Pick & Exec
  2950.      -----------
  2951.           This function asks for a function descriptor to execute.  The
  2952.      same function descriptors are used as are used by KEYCFG.  If you give
  2953.      it an unrecognized descriptor, a list of all supported functions are
  2954.      popped up for your convenience.  If you give it substring, such as
  2955.      'win', all functions descriptors which contain 'win' anywhere will be
  2956.      shown; in this case the window functions.  Tie this to an easy to
  2957.      remember key and all of Bingo's functions are at your fingertips.  
  2958.           This is also useful when you are trying to remember a particular
  2959.      function descriptor and you don't have the documentation handy.
  2960.  
  2961.      Quit and Save Status
  2962.      --------------------
  2963.           This simply saves the current Bingo status information, copies of
  2964.      all current files, and exits.  When you next start Bingo, it will ask
  2965.      if you wish to restore Bingo to its previous state.  If you say yes,
  2966.      you will be placed exactly where you left off.  If you indicate no,
  2967.      Bingo will proceed normally, leaving the suspension files in place to
  2968.      be dealt with the next time Bingo is invoked.
  2969.           This function is ultra-useful since it allows for easy
  2970.      interruptions when you are working.
  2971.  
  2972.  
  2973.  
  2974.  
  2975.  
  2976.  
  2977.  
  2978.  
  2979.  
  2980.  
  2981.  
  2982.  
  2983.  
  2984.  
  2985.  
  2986.                            Bingo 2.11 Reference Manual
  2987.                                        49
  2988.  
  2989.  
  2990.  
  2991.  
  2992.      Global
  2993.      ------
  2994.           This is an *extremely* powerful function.  When invoked, it asks
  2995.      for a keystroke to execute globally.  The keystroke can invoke a
  2996.      macro, or simple be tied to a function.  For each file in the ring,
  2997.      Bingo will ask if you wish the function to be executed; your options
  2998.      are the same as they are when doing a search & replace operation: 
  2999.           Y         Yes, do operation, go to next file
  3000.           N         No, don't do operation, but do go to next file
  3001.           O         Yes, do the operation, but abort the global operation
  3002.                     afterwards.
  3003.           G         Yes, do the operation, and do it for all remaining
  3004.                     files without asking.
  3005.           Q         Abort the global operation right now.
  3006.      You must be *very* careful when using this operation; any functions
  3007.      which change the number of files in the ring can be dangerous.  Be
  3008.      prudent when using it, and you will be fine, use it without some
  3009.      forethought, and you may get bitten and regret it.
  3010.           In version 2.10, this function was cleaned up a good deal; it
  3011.      should be rock-steady reliable, and much cleaner in its interface.
  3012.           Remember, do NOT use this function while recording a macro; you
  3013.      will get unpredictable results.
  3014.  
  3015.      Ascii_table
  3016.      -----------
  3017.           This function serves a dual purpose.  First, it will pop up a
  3018.      display of all 256 characters, serving as a handy reminder of the
  3019.      characters available.  As you move the cursor over the table, the
  3020.      decimal, octal, hexadecimal, and mnemonic values, if appropriate.
  3021.           Further, by moving onto a particular character and hitting
  3022.      return, you will add this character to the string displayed at the
  3023.      top.  You can build a string up to about 30 characters in length.  The
  3024.      <Backspace> key will delete the last character on the string.  When
  3025.      you press <Escape> to leave, the contents of the string will be
  3026.      inserted into the text at the current cursor position.
  3027.  
  3028.      Load_ & Write_profile
  3029.      ---------------------
  3030.           These functions allow you to manage profile files. 
  3031.      'load_profile' will load the profile file for the given extensions,
  3032.      given that it exists.
  3033.           'write_profile' will save the current text settings to the
  3034.      profile file for the named extension.  Further, you will be given the
  3035.      option of saving the file in the current directory (where Bingo looks
  3036.      first) or in Bingo's home directory (where Bingo looks second).
  3037.  
  3038.  
  3039.  
  3040.  
  3041.  
  3042.  
  3043.  
  3044.                            Bingo 2.11 Reference Manual
  3045.                                        50
  3046.  
  3047.  
  3048.  
  3049.  
  3050.      Repeat_last
  3051.      -----------
  3052.           This is a handy function.  It will execute the most-recently-
  3053.      executed function again.  It won't change what that most-recently-
  3054.      executed function was.
  3055.  
  3056.      Display_file
  3057.      ------------
  3058.           Simple, useful.  It will popup the named file into a scrollable
  3059.      window, very similar to the help file.  This would let you create
  3060.      multiple help files.
  3061.  
  3062.      Box Draw Mode
  3063.      -------------
  3064.           This is an enormously useful capability.  When the
  3065.      'toggle_box_draw' function is executed, you will be asked whether you
  3066.      wish to use single or double line drawing.  After you make your
  3067.      choice, the 4 cursor movement functions will respond differently. 
  3068.      When you move the cursor up via the 'cursor_up' function, the cursor
  3069.      will move up, but it will trail a line (of the appropriate mode)
  3070.      behind.  Corners and intersections will be handled automatically.  The
  3071.      line characters will be placed into the text as if Bingo was in
  3072.      overwrite mode. 
  3073.  
  3074.      Cmd_line
  3075.      --------
  3076.           This function gives you a command line entry space on the status
  3077.      line.  You may enter any valid Bingo function.  You only need to enter
  3078.      enough of the function to make it unique; for example, 'swap_ex' is
  3079.      enough to get you the swap_execute function.
  3080.           Further, you can pass parameters to the function you enter
  3081.      directly on the command line, provided the parameters would normally
  3082.      be entered into a string-entry box.  For example,
  3083.  
  3084.           swap_exec dir/p
  3085.  
  3086.      entered in response to the cmd_line would directly execute the "dir/p"
  3087.      command after swapping Bingo out.
  3088.           Note that this only works for parameters which would normally be
  3089.      entered in a string-entry box; parameters entered in response to a
  3090.      Yes/No box would not work.
  3091.  
  3092.  
  3093.  
  3094.  
  3095.  
  3096.  
  3097.  
  3098.  
  3099.  
  3100.  
  3101.  
  3102.                            Bingo 2.11 Reference Manual
  3103.                                        51
  3104.  
  3105.  
  3106.  
  3107.  
  3108.                                 System Operations
  3109.                                 -----------------
  3110.  
  3111.           Bingo supports a number of system operations.  While they are not
  3112.      large in number, they are large in utility.
  3113.  
  3114.      Changing Directories
  3115.      --------------------
  3116.           The 'chdir' function will allow you to change the currently
  3117.      logged directory, or even drive.  Not used often, but when it is
  3118.      needed, it tends to be *really* needed.
  3119.  
  3120.      Simple Execution & Shelling
  3121.      ---------------------------
  3122.           The 'exec_command' function simply executes a given DOS command
  3123.      line and returns.  It does not do anything fancy, and Bingo will
  3124.      remain in memory (consuming quite a bit of memory) but it is fast and
  3125.      simple for issuing short commands.
  3126.           The 'shell' function is identical to 'exec_command', except it
  3127.      takes no arguments.  It simply gives you a DOS shell.
  3128.  
  3129.      Swap Execution & Shelling
  3130.      -------------------------
  3131.           More often than not, particularly in the case of executing
  3132.      command-line compilers, you simply can't afford to let Bingo hang
  3133.      around in memory, since it consumes a bit.  So Bingo provides two
  3134.      other methods for executing commands.  While they appear identical in
  3135.      form and function to the previous pair of functions, 'swap_execute' &
  3136.      'swap_shell', are much more interesting.  
  3137.           While they, too, execute a command or shell to DOS, prior to
  3138.      doing so, they save all relevant information such as copies of the
  3139.      current files, etc., then swap Bingo out of memory.  When this
  3140.      happens, the ~4k kernel of BE.COM is left behind to manage things in
  3141.      Bingo's absence.  When the command is terminated, Bingo will reappear,
  3142.      load all the state info saved previously, and for all intents and
  3143.      purposes, you are right where you left off.  You can define macros
  3144.      across this gap, your placemarks stay intact, etc.  
  3145.           The cost is a small bit of speed when Bingo saves the state
  3146.      information and reads it again later, but it is negligible for the
  3147.      performance return.  It is ideal for running command-line compilers
  3148.      and other memory intensive programs from within Bingo.
  3149.           One thing to remember: the size of your paste buffers as well as
  3150.      the size of your undo stack affect the time it takes to save and
  3151.      restore Bingo's status.  Keep this in mind when you are configuring
  3152.      the stack size, and when you are utilizing multiple paste buffers.
  3153.           In versions prior to 1.1b, Bingo would not swap shell properly on
  3154.      some machines while running DOS 4.00 and higher.  This has been
  3155.      rectified.
  3156.  
  3157.  
  3158.  
  3159.  
  3160.                            Bingo 2.11 Reference Manual
  3161.                                        52
  3162.  
  3163.  
  3164.  
  3165.  
  3166.           If your machine should for some reason have to be reset while
  3167.      Bingo is swapped out (something that happens when you are developing
  3168.      software), the next time you start Bingo, it will treat the swap files
  3169.      as if they were suspension files, and restore Bingo to its previous
  3170.      state.  
  3171.  
  3172.  
  3173.  
  3174.  
  3175.  
  3176.  
  3177.  
  3178.  
  3179.  
  3180.  
  3181.  
  3182.  
  3183.  
  3184.  
  3185.  
  3186.  
  3187.  
  3188.  
  3189.  
  3190.  
  3191.  
  3192.  
  3193.  
  3194.  
  3195.  
  3196.  
  3197.  
  3198.  
  3199.  
  3200.  
  3201.  
  3202.  
  3203.  
  3204.  
  3205.  
  3206.  
  3207.  
  3208.  
  3209.  
  3210.  
  3211.  
  3212.  
  3213.  
  3214.  
  3215.  
  3216.  
  3217.  
  3218.                            Bingo 2.11 Reference Manual
  3219.                                        53
  3220.  
  3221.  
  3222.  
  3223.  
  3224.                                      Macros
  3225.                                      ------
  3226.  
  3227.           Bingo provides tremendous support for the creation, management,
  3228.      and execution of keyboard macros.  This level is support was indicated
  3229.      by the author's own experience in developing Bingo.  
  3230.           I started using Bingo to develop Bingo very early on in Bingo's
  3231.      life (it didn't even have a search function at the time; horrible!) in
  3232.      the hopes that this would ferret out bugs more quickly than testing
  3233.      would.  However, one of the things I missed from my previous editor
  3234.      was the ability to define and replay macros on the fly.  In addition,
  3235.      I felt my previous editor was missing some key functionality when it
  3236.      came to dealing with the keyboard, so I had the opportunity to "do
  3237.      macros right".  Of course, my definition of useful macros may differ
  3238.      from yours, but...
  3239.  
  3240.                !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  3241.                !!!!                                       !!!!
  3242.                !!!! Macros from versions prior to 2.0 are !!!!
  3243.                !!!!                  not                  !!!!
  3244.                !!!! compatible with version 2.0 and above !!!!
  3245.                !!!!                                       !!!!
  3246.                !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  3247.  
  3248.           As of version 2.01, Bingo retains the status of the last function
  3249.      executed internally as a True or False value; you can see this
  3250.      reflected on the far right end of the active status line.  If, during
  3251.      the execution of a macro a function returns a False value, the macro
  3252.      will terminate.  Further, if applicable, the repeat command will
  3253.      terminate.  This allows you to execute macros "until function failure"
  3254.      based on things like trying to move beyond the beginning of the line.
  3255.  
  3256.      Macro Space
  3257.      -----------
  3258.           Prior to version 2.10, Binge restricted macro space to 2048 macro
  3259.      tokens and 200 key combinations.  With version 2.10, these limits have
  3260.      been removed.  Bingo will dynamically increase its macro space to
  3261.      compensate when you add or release memory.  Thus, macro space is
  3262.      limited by available memory.
  3263.  
  3264.      Defining Macros
  3265.      ---------------
  3266.           There are three ways to define macros, all very similar.  You can
  3267.      define the scrap key to hold a macro, a single key to hold a macro, or
  3268.      a two key combination to hold a macro.  Any of these functions will
  3269.      also end a macro definition if one is currently in progress.
  3270.  
  3271.  
  3272.  
  3273.  
  3274.  
  3275.  
  3276.                            Bingo 2.11 Reference Manual
  3277.                                        54
  3278.  
  3279.  
  3280.  
  3281.  
  3282.           Macros can be defined across any number of activities.  Pressing
  3283.      <Escape> at any time as the response to a query from Bingo will end
  3284.      the macro presently being recorded.
  3285.  
  3286.      Saving Macros
  3287.      -------------
  3288.           Using the single key save and load functions, you can save
  3289.      favorite macros to named files for later recall.  Single saving also
  3290.      saves the key sequence the macro is attached to, and loading it in
  3291.      again will redefine the key.
  3292.  
  3293.      Saving the Entire Key Set
  3294.      -------------------------
  3295.           Bingo also allows you to save the entire key table, including all
  3296.      key assignments and all macros, for later recall.  Recalling a keyset
  3297.      file will overwrite the entire key table, so be warned.  
  3298.           When you save a keyset file, you can name the keyset file, and
  3299.      you can have it saved in Bingo's home directory or in an arbitrary
  3300.      directory.  If you name it Keycfg.set, it becomes the default file
  3301.      keyset, depending where you put it.  When Bingo starts up, it looks
  3302.      first in the current directory, then in its home directory for
  3303.      KEYCFG.SET.  This allows you to have multiple key configurations in
  3304.      different disk locations while still maintaining one executable.
  3305.  
  3306.      Executing a Macro File
  3307.      ----------------------
  3308.           You may also execute any macro which was single saved to a file
  3309.      at any time.  This executes it one, without disturbing the current key
  3310.      table assignments.  Good for macros used infrequently, but which are
  3311.      very useful.  I have a whole library of interesting ones saved at this
  3312.      point.
  3313.  
  3314.  
  3315.  
  3316.  
  3317.  
  3318.  
  3319.  
  3320.  
  3321.  
  3322.  
  3323.  
  3324.  
  3325.  
  3326.  
  3327.  
  3328.  
  3329.  
  3330.  
  3331.  
  3332.  
  3333.  
  3334.                            Bingo 2.11 Reference Manual
  3335.                                        55
  3336.  
  3337.  
  3338.  
  3339.  
  3340.                                      Windows
  3341.                                      -------
  3342.  
  3343.      Window_split, _edit & _load
  3344.      ---------------------------
  3345.            These three functions create new windows from the current
  3346.      window.  Window_split simply splits the current window into two, both
  3347.      containing the same file.
  3348.           Window_edit essentially performs a split, then executes an
  3349.      edit_file function.
  3350.           Window_load essentially performs a split, then a load_file
  3351.      function.
  3352.  
  3353.      Window_vertical
  3354.      ---------------
  3355.           Starting in version 2.0, Bingo provided the ability to split
  3356.      windows vertically.  There are some restrictions, however.  Vertical
  3357.      windows must always exist in pairs; that is, two windows sharing one
  3358.      status line.  They are even resized together.  This is not a large
  3359.      problem, but you should be aware of it.
  3360.  
  3361.      Window_resize
  3362.      -------------
  3363.           This function allows you to change the vertical size of a window,
  3364.      as well as the window below the current one.  
  3365.  
  3366.      Window_one & Window_zoom
  3367.      ------------------------
  3368.           While window_one and window_zoom superficially perform the same
  3369.      action, remember that zoom is simply a toggle, while the 'window_one'
  3370.      function eliminates all windows except the current, growing the
  3371.      current window to full size.
  3372.  
  3373.  
  3374.  
  3375.  
  3376.  
  3377.  
  3378.  
  3379.  
  3380.  
  3381.  
  3382.  
  3383.  
  3384.  
  3385.  
  3386.  
  3387.  
  3388.  
  3389.  
  3390.  
  3391.  
  3392.                            Bingo 2.11 Reference Manual
  3393.                                        56
  3394.  
  3395.  
  3396.  
  3397.  
  3398.                                     Printing
  3399.                                     --------
  3400.  
  3401.           Prior to version 2.01, there were two functions to print, one for
  3402.      the file and one for a marked block.  As of version 2.01, these have
  3403.      been combined into 'print_file', which prints a block if it is marked,
  3404.      otherwise it prints the file.
  3405.           There are a number of options governing printing.  You can ask
  3406.      for line numbers to be printed, page headers (time, page, filename),
  3407.      and decide whether Bingo should terminate a line with a single
  3408.      linefeed, or with linefeed/carraige return pairs.
  3409.           You can also send standalone linefeed or formfeed character, or
  3410.      send a sequence of ASCII values.
  3411.  
  3412.  
  3413.  
  3414.  
  3415.  
  3416.  
  3417.  
  3418.  
  3419.  
  3420.  
  3421.  
  3422.  
  3423.  
  3424.  
  3425.  
  3426.  
  3427.  
  3428.  
  3429.  
  3430.  
  3431.  
  3432.  
  3433.  
  3434.  
  3435.  
  3436.  
  3437.  
  3438.  
  3439.  
  3440.  
  3441.  
  3442.  
  3443.  
  3444.  
  3445.  
  3446.  
  3447.  
  3448.  
  3449.  
  3450.                            Bingo 2.11 Reference Manual
  3451.                                        57
  3452.  
  3453.  
  3454.  
  3455.  
  3456.                              Error Parsing and Undo
  3457.                              ----------------------
  3458.  
  3459.      How Error Parsing Works
  3460.      -----------------------
  3461.           Bingo provides the capability to automatically parse compiler
  3462.      generated error messages.  The procedure for this is fairly simple.
  3463.           First, you must have a text file containing the error output of
  3464.      the compiler (or assembler) in question.  This usually obtained by
  3465.      running said compiler and redirecting its output to a file.  Bring
  3466.      this file into the editor.
  3467.           Next, call the 'setup_err_parse' function, and give it the name
  3468.      of the file.  If the name matches a file in the ring, Bingo will tell
  3469.      you that error processing is setup properly.
  3470.           Now it is simple; simple call the 'next_error' or 'prev_error'
  3471.      functions.  The following things will happen:
  3472.  
  3473.           1)   Bingo will see if a next (or previous) error can be found. 
  3474.           If not, it will report that no more errors exist.
  3475.           2)   Assuming an error line is found, the filename and line
  3476.           number will be picked out of the line.  Bingo will perform and
  3477.           edit_file operation on the filename, then jump to the offending
  3478.           line.  All of this will happen within the current window.
  3479.           3)   Also, any onscreen window which contains the file being
  3480.           parsed will be updated.  The current error line will be
  3481.           highlighted automatically.
  3482.  
  3483.      As you can see, error parsing is super useful.  For a further example
  3484.      of how it works, see the example macro in the section on the KEYCFG
  3485.      program.
  3486.  
  3487.      Error Parsing Method
  3488.      --------------------
  3489.           Bingo parses error files using a "fuzzy" or "best-guess"
  3490.      algorithm.  It checks each line as follows.
  3491.           First, Bingo attempts to find a valid filename on the line.  The
  3492.      filename must contain a period, and it must have a file extension. 
  3493.      The filename cannot be a .EXE or .COM file, and it may contain the
  3494.      full path specification (new with version 2.10e).
  3495.           After finding such a filename, Bingo verifies that the named file
  3496.      exists on disk or in the current ring.  If it does, Bingo now begins
  3497.      to look for the line number within the error file.  Bingo will look
  3498.      for the first number to follow the filename, and use this as the line
  3499.      number.
  3500.           If both a filename & a line number are found, the line will be
  3501.      recognized as a valid error/warning line. 
  3502.  
  3503.  
  3504.  
  3505.  
  3506.  
  3507.  
  3508.                            Bingo 2.11 Reference Manual
  3509.                                        58
  3510.  
  3511.  
  3512.  
  3513.  
  3514.           This algorithm will work for the Borland and Microsoft
  3515.      developmental tools.  However, in some cases, you may have to consult
  3516.      your manual in order to find what command-line switches have to be set
  3517.      for your compiler to output errors in a usable message format.
  3518.  
  3519.           !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  3520.           !!!!!!!!                                !!!!!!!!!
  3521.           !!!!!!!! Note that linker errors do not !!!!!!!!!
  3522.           !!!!!!!! have line numbers, and so will !!!!!!!!!
  3523.           !!!!!!!!      not be recognized.        !!!!!!!!!
  3524.           !!!!!!!!                                !!!!!!!!!
  3525.           !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  3526.  
  3527.      However, whenever Bingo encounters a situation where there are no more
  3528.      errors, it will display a message saying so.  Further, it will display
  3529.      a portion of the last non-blank line in the error file on the message
  3530.      line with the "No more Errors" message, so you can verify that all
  3531.      went well.
  3532.  
  3533.      Undo Capabilities
  3534.      -----------------
  3535.           Bingo has several capabilities to allow you to recover from
  3536.      recent mistakes.  The 'Restore_line' function, will simply recall the
  3537.      state of the current line to what it was when you first arrived.  This
  3538.      is good only as long as you do not move from the line; once you leave
  3539.      the line, its original state is lost forever.
  3540.           This type of error-recovery is good for small things, but
  3541.      something more substantial was needed.  So Bingo keeps a stack of
  3542.      recently deleted items; text deleted by 'del_eol', 'del_bol', and
  3543.      'del_line' functions.  This stack is kept in reverse order; that is,
  3544.      the most recently deleted text is placed in top of the undo stack.
  3545.           Additionally, you have an option regarding text cut to the paste
  3546.      buffer.  Normally, when you place text into the paste buffer (Using
  3547.      the 'cut', 'copy', etc. functions), if the paste buffer already
  3548.      contains something, that text is discarded.  However, if you set the
  3549.      'cut to stack' option on (in the General Config Menu, or with the
  3550.      'conf_cut_stack' function), this text will be pushed onto the stack
  3551.      also.
  3552.           You can control the size of the undo stack using the
  3553.      'conf_kill_size' function (1 to 10240 lines), or through the config
  3554.      menus.  You cannot, however, turn it off.
  3555.  
  3556.  
  3557.  
  3558.  
  3559.  
  3560.  
  3561.  
  3562.  
  3563.  
  3564.  
  3565.  
  3566.                            Bingo 2.11 Reference Manual
  3567.                                        59
  3568.  
  3569.  
  3570.  
  3571.  
  3572.      Manipulating the Undo Stack
  3573.      ---------------------------
  3574.           There are three functions available to help you deal with the
  3575.      undo stack.  'rotate_kill' will popup a list of the current stack's
  3576.      contents.  By moving the menu bar and hitting return, you can move the
  3577.      selected entry to the top of the stack.
  3578.           'unkill' and 'paste_kill' are very similar.  They take the top
  3579.      member of the stack and insert it in the current position.  If the top
  3580.      member of the stack was a full line, it will be inserted above the
  3581.      current line.  'unkill' also removes the top member from the stack.
  3582.  
  3583.  
  3584.  
  3585.  
  3586.  
  3587.  
  3588.  
  3589.  
  3590.  
  3591.  
  3592.  
  3593.  
  3594.  
  3595.  
  3596.  
  3597.  
  3598.  
  3599.  
  3600.  
  3601.  
  3602.  
  3603.  
  3604.  
  3605.  
  3606.  
  3607.  
  3608.  
  3609.  
  3610.  
  3611.  
  3612.  
  3613.  
  3614.  
  3615.  
  3616.  
  3617.  
  3618.  
  3619.  
  3620.  
  3621.  
  3622.  
  3623.  
  3624.                            Bingo 2.11 Reference Manual
  3625.                                        60
  3626.  
  3627.  
  3628.  
  3629.  
  3630.                                 Configuring Bingo
  3631.                                 -----------------
  3632.  
  3633.           Bingo is extremely configurable.  To access the configuration
  3634.      menu, select the 'Config' option from the main menu, or attach keys to
  3635.      particular configuration functions.  The settings themselves are
  3636.      explained explicitly in the Function List section of this document in
  3637.      the Configuration portion.  
  3638.           To make the current selections permanent, select the "Write
  3639.      setting" option found on the main configuration menu.
  3640.           There is one item of interest of interest.  There are nine
  3641.      settings which as of version 2.01 are maintained on a per buffer
  3642.      basis.  These settings are the ones saved in profile files, and are
  3643.      found on the 'Text Settings' config menu.  Each time you change these
  3644.      with a 'conf_' function, you change both the underlying default (used
  3645.      when new files are brought in) and the current buffer's settings.  For
  3646.      a few settings, there are also 'toggle_' functions, such as
  3647.      'toggle_cmode'.  These change only the current buffer's settings.
  3648.  
  3649.  
  3650.  
  3651.  
  3652.  
  3653.  
  3654.  
  3655.  
  3656.  
  3657.  
  3658.  
  3659.  
  3660.  
  3661.  
  3662.  
  3663.  
  3664.  
  3665.  
  3666.  
  3667.  
  3668.  
  3669.  
  3670.  
  3671.  
  3672.  
  3673.  
  3674.  
  3675.  
  3676.  
  3677.  
  3678.  
  3679.  
  3680.  
  3681.  
  3682.                            Bingo 2.11 Reference Manual
  3683.                                        61
  3684.  
  3685.  
  3686.  
  3687.  
  3688.                                   Function List
  3689.                                   -------------
  3690.  
  3691.           The following section contains a listing of the functions
  3692.      supported by Bingo, grouped by functionality.  The index at the end of
  3693.      this document makes alphabetical location of these functions simple.
  3694.  
  3695.      General Editing
  3696.      ---------------
  3697.  
  3698.      - insert_tab
  3699.           insert the number of spaces needed to move the cursor to the next
  3700.           tab stop, based on the current tabsize.
  3701.  
  3702.      - carriage
  3703.           If the 'conf_carraige' setting is turned on, this function splits
  3704.           the current line by moving the cursor to the start of the next
  3705.           line, taking everything to the right of the cursor along for the
  3706.           ride.  If this moves you onto the bottom line of the window, the
  3707.           line will be centered on the screen.  Depending on C mode and the
  3708.           AutoIndent mode settings, automatic indentation of some type may
  3709.           be performed.  If the 'conf_carraige' setting is turned off, this
  3710.           function simply moves the cursor down one line.
  3711.  
  3712.      - toggle_ins
  3713.           toggles the insert/overwrite mode. Changes only the setting of
  3714.           the current buffer.
  3715.  
  3716.      - toggle_wrap
  3717.           toggles the word wrap setting. Changes only the setting of the
  3718.           current buffer.
  3719.  
  3720.      - toggle_cmode
  3721.           toggles the C mode setting, regardless of the file name. Changes
  3722.           only the setting of the current buffer.
  3723.  
  3724.      - toggle_autoindent
  3725.           toggle the autoindent setting.  Changes only the setting of the
  3726.           current buffer.
  3727.  
  3728.      - main_menu
  3729.           invokes the main menu.
  3730.  
  3731.      - del_char
  3732.           deletes the current character at the cursor position; if it was
  3733.           at the end of a line and the 'conf_delete_join' setting is turned
  3734.           on, brings the next line up.
  3735.  
  3736.  
  3737.  
  3738.  
  3739.  
  3740.                            Bingo 2.11 Reference Manual
  3741.                                        62
  3742.  
  3743.  
  3744.  
  3745.  
  3746.      - back_space
  3747.           if the 'conf_delete_join' setting is turned on, performs a
  3748.           destructive backspace, if the current deletion mode is not
  3749.           Rubout.  If the current mode is Rubout, the cursor will back up
  3750.           one space and the current character will be blanked.based on the
  3751.           current deletion mode in effect.  If the setting is turned off,
  3752.           performs a rubout.
  3753.  
  3754.      - del_line
  3755.           deletes the entire current line, regardless of position.
  3756.  
  3757.      - del_eol
  3758.           deletes all text to the end of the line; if at the end of a line,
  3759.           joins the lines if the 'conf_delete_join' setting is turned on.
  3760.  
  3761.      - del_bol
  3762.           deletes all text to beginning of line, moves to first column. If
  3763.           at the beginning, joins the line with the previous line if the
  3764.           'conf_delete_join' setting is turned on.
  3765.  
  3766.      - default_del
  3767.           does one of two things depending on whether or not a block is
  3768.           marked.  If a block is marked, the 'cut' function is executed. 
  3769.           If no block is marked, the 'del_char' function is executed.
  3770.  
  3771.      - default_bspace
  3772.           similar to 'default_del', except that if no block is marked, a
  3773.           'back_space' function is executed.
  3774.  
  3775.      - del_word_rt
  3776.           deletes from the current cursor position to the start of the next
  3777.           word to the right.
  3778.  
  3779.      - del_word_lt
  3780.           deletes from the current cursor position to the start of the next
  3781.           word to the left.
  3782.  
  3783.      - new_line 
  3784.           inserts a new line before the current line, without moving the
  3785.           cursor. 
  3786.  
  3787.  
  3788.  
  3789.  
  3790.  
  3791.  
  3792.  
  3793.  
  3794.  
  3795.  
  3796.  
  3797.  
  3798.                            Bingo 2.11 Reference Manual
  3799.                                        63
  3800.  
  3801.  
  3802.  
  3803.  
  3804.      File Handling
  3805.      -------------
  3806.  
  3807.      - edit_file
  3808.           after asking for a filename; if the file is already in the ring,
  3809.           it simply switches to it.  If it is not in the ring, it loads the
  3810.           file.
  3811.  
  3812.      - choose_file
  3813.           pops up a list of current files in the ring, and an option for a
  3814.           new file.  Selecting the New File option performs an 'edit_file'
  3815.           function.
  3816.  
  3817.      - load_file
  3818.           after asking for a filename, it loads that file from disk.  If
  3819.           the file is already in the ring, the in-memory version is first
  3820.           deleted from memory.
  3821.  
  3822.      - rename_file
  3823.           renames current file.
  3824.  
  3825.      - switch_file
  3826.           switches to a different file, performing a quit on the current
  3827.           file first.  If you escape out of the quit option, the switch
  3828.           operation will abort.
  3829.  
  3830.      - save_file
  3831.           saves the current file; does not exit.
  3832.  
  3833.      - modify_save
  3834.           saves current file ONLY if it has been modified.
  3835.  
  3836.      - quit
  3837.           exits current file.  If the file was modified, it will ask you if
  3838.           you wish to save the file; a <return> indicates yes.
  3839.  
  3840.      - abort
  3841.           exits the file, no protection, no save.
  3842.  
  3843.      - file
  3844.           saves and exits current file.
  3845.  
  3846.      - next_file
  3847.           moves to the next file in ring.
  3848.  
  3849.      - prev_file
  3850.           moves to the previous file in the ring.
  3851.  
  3852.      - quit_all
  3853.           performs a quit on each file in the ring.
  3854.  
  3855.  
  3856.                            Bingo 2.11 Reference Manual
  3857.                                        64
  3858.  
  3859.  
  3860.  
  3861.  
  3862.      - abort_all
  3863.           aborts all files, no questions asks.
  3864.  
  3865.      - file_all
  3866.           saves and exits all files.
  3867.  
  3868.      - save_all
  3869.           saves all files.
  3870.  
  3871.      - modify_save_all
  3872.           saves each modified file in the ring.
  3873.  
  3874.      - delete_file
  3875.           asks for a filename to delete on disk.
  3876.  
  3877.      - zap_file
  3878.           delete's the disk copy of the current file. 
  3879.  
  3880.      - block_load
  3881.           loads a file into the current position
  3882.  
  3883.      - clean_file
  3884.           resets the 'modified' status of the file to FALSE.
  3885.  
  3886.      - clean_all
  3887.           resets the 'modified' status of all files in the ring to FALSE.
  3888.  
  3889.      - backup_file
  3890.           forces a backup attempt for the current file; this will only have
  3891.           an effect if the file's timed backup setting is on.
  3892.  
  3893.      - backup_all
  3894.           forces a backup attempt on each file in the ring.  For each file,
  3895.           this will only have an effect if the file's timed backup setting
  3896.           is on.
  3897.  
  3898.  
  3899.  
  3900.  
  3901.  
  3902.  
  3903.  
  3904.  
  3905.  
  3906.  
  3907.  
  3908.  
  3909.  
  3910.  
  3911.  
  3912.  
  3913.  
  3914.                            Bingo 2.11 Reference Manual
  3915.                                        65
  3916.  
  3917.  
  3918.  
  3919.  
  3920.      Searching
  3921.      ---------
  3922.  
  3923.      - again
  3924.           repeat the last search operation.  If none has yet been done,
  3925.           works just like search.  If the last search operation done was a
  3926.           search & replace, only the search portion is done.
  3927.  
  3928.      - search
  3929.           search for text.  Will ask for the target text, and two
  3930.           modifiers:
  3931.                               I Ignore case
  3932.                               B Backwards
  3933.                               C Count
  3934.                               R Regexp
  3935.                               A Accent
  3936.           The 'C' option simply counts the number of occurrences.
  3937.           The 'R' option tells Bingo to interpret the input string as a
  3938.           regular expression.  See the section on searching and the READ.ME
  3939.           file for more details.
  3940.           The 'A' option tells Bingo to highlight the 'found' text until
  3941.           the next keystroke arrives.
  3942.           If the text is marked, the marking will be treated as
  3943.           linemarking, and Bingo's search will not continue past the end of
  3944.           the marked area.  This allows you to limit the searching scope to
  3945.           a particular area.
  3946.  
  3947.  
  3948.  
  3949.  
  3950.  
  3951.  
  3952.  
  3953.  
  3954.  
  3955.  
  3956.  
  3957.  
  3958.  
  3959.  
  3960.  
  3961.  
  3962.  
  3963.  
  3964.  
  3965.  
  3966.  
  3967.  
  3968.  
  3969.  
  3970.  
  3971.  
  3972.                            Bingo 2.11 Reference Manual
  3973.                                        66
  3974.  
  3975.  
  3976.  
  3977.  
  3978.      - replace
  3979.           search and replace text.  Will ask for target, replacement text,
  3980.           and three modifiers:
  3981.                               I Ignore Case
  3982.                               B Backwards
  3983.                               G Global Search/Replace
  3984.                               R Regexp
  3985.                               A Accent
  3986.                               P Preserve
  3987.                               D Debug
  3988.           If Global is selected, Bingo will simply replace all matching
  3989.           occurrences with the replacement text.  If not, Bingo will stop
  3990.           at each match and ask:
  3991.                               Yes:      replace and continue.
  3992.                               No:       don't replace, but continue search.
  3993.                               Only:     Replace this and stop
  3994.                               Quit:     stop, no replacement.
  3995.                               Global:   Continue with global replacement
  3996.           'R' & 'A' options work as in the search case.
  3997.           'P' tells Bingo to preserve the original cursor location and
  3998.           return to it when done with the replace operation.
  3999.           'D' is useful for regular expression work.  It tells Bingo to
  4000.           display its conception of the target string (grouping, classes,
  4001.           occurance, etc).
  4002.           Marked text limits the range as in the search function.
  4003.  
  4004.      - search_macro
  4005.           will acted like the 'search' function, but will ask for a key to
  4006.           apply when found.  It will work like the replace function, but
  4007.           instead of replacing, it will execute the given key.  DO NOT use
  4008.           this function while recording a macro.
  4009.  
  4010.      - mark_last_found
  4011.           his will unmark the file and mark the last found text if you have
  4012.           not moved.
  4013.  
  4014.      - leap_forward
  4015.           searches forward for the next occurence of the next key pressed. 
  4016.           If the key is a function key or return, 'leap_forward' will use
  4017.           the previous target.
  4018.  
  4019.      - leap_backward
  4020.           searches backward for the next occurence of the next key pressed. 
  4021.           If the key is a function key or return, 'leap_backward' will use
  4022.           the previous target.
  4023.  
  4024.  
  4025.  
  4026.  
  4027.  
  4028.  
  4029.  
  4030.                            Bingo 2.11 Reference Manual
  4031.                                        67
  4032.  
  4033.  
  4034.  
  4035.  
  4036.      Navigation
  4037.      ----------
  4038.  
  4039.      - down_page
  4040.           moves down one windowful.
  4041.  
  4042.      - up_page
  4043.           moves up one windowful.
  4044.  
  4045.      - cursor_right
  4046.           moves right one char; wraps if necessary and if bounce mode is
  4047.           active.
  4048.  
  4049.      - cursor_left
  4050.           moves left one char, wraps if necessary and if bounce mode is
  4051.           active.
  4052.  
  4053.      - cursor_up
  4054.           moves up one line.
  4055.  
  4056.      - cursor_down
  4057.           moves down one line.
  4058.  
  4059.      - back_tab
  4060.           moves back to the previous tab stop.  Does not change the text at
  4061.           all.
  4062.  
  4063.      - begin_line
  4064.           goes to beginning of line.
  4065.  
  4066.      - end_line
  4067.           goes to end of line.
  4068.  
  4069.      - top_of_file
  4070.           jump to top of file.
  4071.  
  4072.      - bot_of_file
  4073.           jump to bottom of file.
  4074.  
  4075.      - next_word
  4076.           goes to beginning of next word.
  4077.  
  4078.      - prev_word
  4079.           goes to beginning of previous word.
  4080.  
  4081.      - top_of_screen
  4082.           jumps to the top of screen.
  4083.  
  4084.      - bottom_of_screen
  4085.           jumps to the bottom of screen.
  4086.  
  4087.  
  4088.                            Bingo 2.11 Reference Manual
  4089.                                        68
  4090.  
  4091.  
  4092.  
  4093.  
  4094.      - top_of_block
  4095.           jumps to the top of marked block.
  4096.  
  4097.      - bottom_of_block
  4098.           jumps to the bottom of marked block.
  4099.  
  4100.      - jump
  4101.           jump to position.  If the number is prefaced with a '+'
  4102.           character, Bingo will jump the relative distance forward.  If the
  4103.           number is prefaced with a '-' character, Bingo will jump the
  4104.           relative distance backwards.
  4105.  
  4106.      - center_line
  4107.           makes the current line the center line of the current window, and
  4108.           repaint the entire screen, all windows.  
  4109.  
  4110.      - begin_of_text
  4111.           moves the cursor to the first non-space character on the current
  4112.           line.
  4113.  
  4114.      - indent_up
  4115.           moves to previous line with same indentation scheme as current
  4116.           line.
  4117.  
  4118.      - indent_down
  4119.           moves to next line with same indentation scheme as current line.
  4120.  
  4121.      - snap_to_mouse_xy
  4122.           moves the cursor to the current mouse position, changing windows
  4123.           if necessary.
  4124.  
  4125.      - mouse_scroll
  4126.           moves the cursor to the mouse position when the mouse button is
  4127.           released;  while the button is depressed, the file will scroll up
  4128.           and down, depending on where the mouse cursor is moved.  The
  4129.           closer the cursor is to the top and bottom of the window, the
  4130.           faster the file will scroll.
  4131.  
  4132.      - place_mark
  4133.           drops a placemark, inquiring as which of the 10 allowed (0-9) you
  4134.           are concerned with.  Each placemark contains the filename, the
  4135.           line, the column.
  4136.  
  4137.      - jump_mark
  4138.           jumps to the specified placemark.  If the specified filename is
  4139.           not in the ring, Bingo will go and get it.
  4140.  
  4141.      - show_marks
  4142.           pops up a window showing the current placemarks in effect for
  4143.           this editing session.
  4144.  
  4145.  
  4146.                            Bingo 2.11 Reference Manual
  4147.                                        69
  4148.  
  4149.  
  4150.  
  4151.  
  4152.      - scroll_up
  4153.           scroll the display up one line, keeping the cursor in its same
  4154.           place.
  4155.  
  4156.      - scroll_down
  4157.           scroll the display down one line, keeping the cursor in its same
  4158.           place.
  4159.  
  4160.      - scroll_left
  4161.           scrolls the screen to left (the text to the right). 
  4162.  
  4163.      - scroll_right
  4164.           scrolls the screen to right (the txt to the left).
  4165.  
  4166.  
  4167.  
  4168.  
  4169.  
  4170.  
  4171.  
  4172.  
  4173.  
  4174.  
  4175.  
  4176.  
  4177.  
  4178.  
  4179.  
  4180.  
  4181.  
  4182.  
  4183.  
  4184.  
  4185.  
  4186.  
  4187.  
  4188.  
  4189.  
  4190.  
  4191.  
  4192.  
  4193.  
  4194.  
  4195.  
  4196.  
  4197.  
  4198.  
  4199.  
  4200.  
  4201.  
  4202.  
  4203.  
  4204.                            Bingo 2.11 Reference Manual
  4205.                                        70
  4206.  
  4207.  
  4208.  
  4209.  
  4210.      Block Handling
  4211.      --------------
  4212.  
  4213.      - line_mark
  4214.           drop a line marker.  The block will be expanded or shrunk,
  4215.           depending on the last drop made.  Line marks consider the line to
  4216.           be the smallest markable element of text.
  4217.  
  4218.      - point_mark
  4219.           drop a point marker.  The block will be expanded or shrunk,
  4220.           depending on the last drop made.  Point marks consider the
  4221.           character to be the smallest markable element of text.
  4222.  
  4223.      - vertical_mark
  4224.           drop a vertical marker. Vertical, or column, blocks are defined
  4225.           by and upper and an opposing lower corner.
  4226.  
  4227.      - extend_mark
  4228.           extends the current marked block, using whichever marking scheme
  4229.           is in place.  Does nothing if no block is marked.
  4230.  
  4231.      - unmark
  4232.           unmark all text in current buffer.
  4233.  
  4234.      - cut
  4235.           cut the marked text to the block buffer.  The marked text is
  4236.           deleted from the file.  
  4237.  
  4238.      - copy
  4239.           copy the marked text to the block buffer.  The marked text is NOT
  4240.           deleted from the file.
  4241.  
  4242.      - paste
  4243.           pastes the contents of the block buffer into the text at the
  4244.           current position.  If the contents were linemarked, the contents
  4245.           will be pasted, as lines, above the current line.  
  4246.  
  4247.      - paste_replace
  4248.           pastes the contents of the block buffer at the current location,
  4249.           overwriting the needed amount of space.  This is only valid when
  4250.           the paste buffer is Line or Vertical marked.
  4251.  
  4252.      - block_move
  4253.           moves the currently marked blocked of text to the cursor
  4254.           position.
  4255.  
  4256.      - block_copy
  4257.           copies the currently marked blocked of text to the cursor
  4258.           position.
  4259.  
  4260.  
  4261.  
  4262.                            Bingo 2.11 Reference Manual
  4263.                                        71
  4264.  
  4265.  
  4266.  
  4267.  
  4268.      - block_delete
  4269.           deletes the currently marked block of text to the block buffer;
  4270.           identical to cut.
  4271.  
  4272.      - block_save
  4273.           writes the currently marked text to a file.
  4274.  
  4275.      - swap_buf_and_block
  4276.           takes the currently marked portion, and swaps it with the current
  4277.           contents of the paste buffer.  The two blocks need not be of the
  4278.           same type.
  4279.  
  4280.      - report_bsize
  4281.           reports the number of lines and characters (line breaks in point
  4282.           marked blocks count as one character) the currently marked block
  4283.           spans.
  4284.  
  4285.      - name_buffer
  4286.           allows you to change the current paste buffer.  <return>
  4287.           specifies the default buffer, and 'a'-'z' specify their
  4288.           respective buffers.
  4289.  
  4290.      - buffer_info
  4291.           displays various pertinent information about all the paste
  4292.           buffers.
  4293.  
  4294.      - look_buffer
  4295.           displays the contents of the current buffer in a non-editable
  4296.           window.  This only displays up to the first 100 lines in the
  4297.           buffer.
  4298.  
  4299.      - cut_append
  4300.           works exactly like 'Cut', except it appends the marked text to
  4301.           the current contents of the buffer.  The text in the buffer and
  4302.           the marked text must be of the same type.
  4303.  
  4304.      - copy_append
  4305.           just as 'Cut_append', but performs a copy instead.
  4306.  
  4307.      - emacs_yank
  4308.           melds the unkill stack and the paste buffer together.  If the
  4309.           most recent block operation/deletion was a block operation,
  4310.           'emacs_yank' works exactly like 'paste', pushing the paste buffer
  4311.           contents into the text.  If the most recent operation was a
  4312.           deletion (word, line, -eol, -bol), 'emacs_yank' works like the
  4313.           'paste_kill' function, pulling text from the undo stack without
  4314.           disturbing its contents.  This allows you to use the deletion
  4315.           commands to manipulate text in concert with the paste buffer
  4316.           operations.
  4317.  
  4318.  
  4319.  
  4320.                            Bingo 2.11 Reference Manual
  4321.                                        72
  4322.  
  4323.  
  4324.  
  4325.  
  4326.      Utilities
  4327.      ---------
  4328.  
  4329.      - entab
  4330.           compresses the linemarked region specified or the entire file by
  4331.           converting spaces to tabs.
  4332.  
  4333.      - indent_tab
  4334.           compresses the leading spaces of the linemark region specified or
  4335.           the entire file by converting into the proper tabs.  Rounds to
  4336.           the nearest tab stop, thus "normalizing" the indention to tab
  4337.           stops.
  4338.  
  4339.      - detab
  4340.           expands the linemarked region specified or the entire file by
  4341.           converting tabs to spaces.
  4342.  
  4343.      - shift_block
  4344.           shifts the specified linemarked region the number of columns
  4345.           specified.  Positive numbers indicate right-shifting, negative
  4346.           numbers, left-shifting.  The character 't' is used to signify tab
  4347.           widths '-3t' shifts the block left 3 tabwidths.
  4348.  
  4349.      - lcase_block
  4350.           lowercases the linemarked region.
  4351.  
  4352.      - ucase_block
  4353.           uppercases the linemarked region.
  4354.  
  4355.      - fcase_block
  4356.           flips the case of the linemarked region.
  4357.  
  4358.      - word_count
  4359.           counts the words in the linemarked region, default the whole
  4360.           file.  A word here is defined as non-whitespace and non-
  4361.           punctuation characters, NOT by the settings of the 'conf_word'
  4362.           function.
  4363.  
  4364.      - strip_highbit
  4365.           strips the 8th bit in the linemarked region, default the whole
  4366.           file.
  4367.  
  4368.      - sort_block
  4369.           sorts block, ascending or descending, on a certain column.
  4370.  
  4371.      - reform_para
  4372.           reformats a block of text to conform to the right margin; a
  4373.           paragraph is defined as text between blank lines.  The total
  4374.           amount of text contained in a single paragraph cannot be larger
  4375.           than 30000 characters.
  4376.  
  4377.  
  4378.                            Bingo 2.11 Reference Manual
  4379.                                        73
  4380.  
  4381.  
  4382.  
  4383.  
  4384.      - repeat
  4385.           repeats a keystroke n times.  If n is '*', the function repeats
  4386.           until a search fails.  The function halts repetition on a search
  4387.           failure.  DO NOT use this command while you are recording a
  4388.           macro; you will get unpredictable results.
  4389.  
  4390.      - dup_line
  4391.           duplicates the current line and increments cursor to the next
  4392.           line.
  4393.  
  4394.      - align
  4395.           slides the linemarked region left or right to match indentation
  4396.           with the line immediately above the first marked line.  If not
  4397.           lines are marked, the current line is aligned.
  4398.  
  4399.      - match_delim
  4400.           finds the proper match for a delimiter.  Delimiters include
  4401.           'begin'/'end' to help Pascal programmers, as well as '({[<'.
  4402.  
  4403.      - time_stamp
  4404.           inserts the current date and time into the text.
  4405.  
  4406.      - fill_block
  4407.           fills a vertically marked block with a specified character.
  4408.  
  4409.      - center_text
  4410.           centers the current non-space text of the current line (or
  4411.           linemarked block) on its line, relative to the right margin.
  4412.  
  4413.  
  4414.  
  4415.  
  4416.  
  4417.  
  4418.  
  4419.  
  4420.  
  4421.  
  4422.  
  4423.  
  4424.  
  4425.  
  4426.  
  4427.  
  4428.  
  4429.  
  4430.  
  4431.  
  4432.  
  4433.  
  4434.  
  4435.  
  4436.                            Bingo 2.11 Reference Manual
  4437.                                        74
  4438.  
  4439.  
  4440.  
  4441.  
  4442.      Extra Operations
  4443.      ----------------
  4444.  
  4445.      - help
  4446.           views the help file BINGO.HLP.  This file must be located in the
  4447.           same directory as BE.EXE.
  4448.  
  4449.      - info
  4450.           pops up an info window, providing information on current files in
  4451.           the ring, and about Bingo's current condition
  4452.  
  4453.      - pick_exec
  4454.           this allows you to pick a function descriptor and have it
  4455.           executed.
  4456.  
  4457.      - quit_and_save_status
  4458.           his function saves the current status of Bingo as well as the
  4459.           current files, so that the next time Bingo is invoked, you will
  4460.           be given the option to pick up where you left off.
  4461.  
  4462.      - global
  4463.           this allows you to execute any keystroke globally, throughout all
  4464.           the files in the ring.  DO NOT use this function while recording
  4465.           a macro.
  4466.  
  4467.      - query_quote
  4468.           inserts an integer or sequence of integers as its raw ASCII
  4469.           character.  The decimal values must be comma delimited.
  4470.  
  4471.      - ascii_table
  4472.           pops up a display of all Ascii characters.  By hitting Return on
  4473.           a character, you add it to the string.  When you hit Escape, the
  4474.           string is inserted into the text. 
  4475.  
  4476.      - toggle_display
  4477.           toggles the display size between 25 lines and 43/50 lines.  Will
  4478.           in all likelihood screw up the cursor shape, since the scan line
  4479.           counts will change.
  4480.  
  4481.      - load_profile
  4482.           loads the profile file of your choice, searching first the
  4483.           current directory then Bingo's home directory.  Prompts to see if
  4484.           you wish to load a keyset file.
  4485.  
  4486.  
  4487.  
  4488.  
  4489.  
  4490.  
  4491.  
  4492.  
  4493.  
  4494.                            Bingo 2.11 Reference Manual
  4495.                                        75
  4496.  
  4497.  
  4498.  
  4499.  
  4500.      - write_profile
  4501.           saves the text settings of the active buffer to the profile file
  4502.           of your choice in either the current directory or Bingo's home
  4503.           directory.  Settings include:
  4504.  
  4505.                          &ins=1     (insert mode, 1=yes, 0=no)
  4506.                          &tabs=5    (tabsize)
  4507.                          &wrap=1    (wordwrap, 1=yes, 0=no)
  4508.                          &indent=1  (autoindention mode, 1=yes, 0=no)
  4509.                          &cmode=0   (C mode, 0=off, 1=mode 1, etc)
  4510.                          &rmarg=65  (right margin)
  4511.                          &smart=0   (smart tabs, 1=yes, 0=no)
  4512.                          &match=0   (matching mode, 1=yes, 0=no)
  4513.                          &bspace=0  (backspace mode)
  4514.                          &timed=256 (timed backups, range 0 - 32000)
  4515.       
  4516.      - version_info
  4517.           displays various version information and the name of the person
  4518.           this copy was registered to, if it is a registered copy.
  4519.  
  4520.      - repeat_last
  4521.           repeats the last function executed.  
  4522.  
  4523.      - display_file
  4524.           will popup the named file into a scrollable box, similar to the
  4525.           help file.
  4526.  
  4527.  
  4528.  
  4529.  
  4530.  
  4531.  
  4532.  
  4533.  
  4534.  
  4535.  
  4536.  
  4537.  
  4538.  
  4539.  
  4540.  
  4541.  
  4542.  
  4543.  
  4544.  
  4545.  
  4546.  
  4547.  
  4548.  
  4549.  
  4550.  
  4551.  
  4552.                            Bingo 2.11 Reference Manual
  4553.                                        76
  4554.  
  4555.  
  4556.  
  4557.  
  4558.      System Operations
  4559.      -----------------
  4560.  
  4561.      - chdir
  4562.           change the currently logged directory.
  4563.  
  4564.      - exec_command
  4565.           execute a DOS command, while leaving Bingo completely resident in
  4566.           memory.
  4567.  
  4568.      - shell
  4569.           shell to DOS, leaving Bingo completely resident in memory.
  4570.  
  4571.      - swap_execute
  4572.           execute a DOS command while swapping Bingo out.  This will cause
  4573.           Bingo to save copies of the buffers as well as state information,
  4574.           and leave behind an ~10k kernel.
  4575.  
  4576.      - swap_shell
  4577.           shell to DOS while swapping as above.
  4578.  
  4579.  
  4580.  
  4581.  
  4582.  
  4583.  
  4584.  
  4585.  
  4586.  
  4587.  
  4588.  
  4589.  
  4590.  
  4591.  
  4592.  
  4593.  
  4594.  
  4595.  
  4596.  
  4597.  
  4598.  
  4599.  
  4600.  
  4601.  
  4602.  
  4603.  
  4604.  
  4605.  
  4606.  
  4607.  
  4608.  
  4609.  
  4610.                            Bingo 2.11 Reference Manual
  4611.                                        77
  4612.  
  4613.  
  4614.  
  4615.  
  4616.      Macros
  4617.      ------
  4618.  
  4619.           !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  4620.           !!!!!                                         !!!!!
  4621.           !!!!! All of these functions will end a macro !!!!!
  4622.           !!!!!        being currently defined          !!!!!
  4623.           !!!!!                                         !!!!!
  4624.           !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  4625.  
  4626.      - define_scrap
  4627.           start scrap macro definition.  
  4628.  
  4629.      - onekey_def
  4630.           start single-key macro definition.
  4631.  
  4632.      - twokey_def
  4633.           start two-key macro definition.
  4634.  
  4635.      - scrap
  4636.           execute the scrap macro.
  4637.  
  4638.      - single_key_save
  4639.           save a single macro to a file for later recall.  Saves the key it
  4640.           is attached to also.
  4641.  
  4642.      - single_key_load
  4643.           load a single macro from a file.  Overwrites the current
  4644.           definition for the key, if it has one.
  4645.  
  4646.      - key_set_save
  4647.           saves entire keyset, including macros, but not the scrap.
  4648.  
  4649.      - key_set_load
  4650.           load entire keyset.
  4651.  
  4652.      - run_macro_file
  4653.           runs a macro from a file saved with single_key_save.
  4654.  
  4655.      - undefine_key
  4656.           undefines a key.
  4657.  
  4658.      - end_macro
  4659.           ends the recording of a current macro.  Mostly useless, but it
  4660.           made for a useful menu entry.
  4661.  
  4662.      - key_set_impress
  4663.           THIS FUNCTION HAS BEEN DELETED AS OF VERSION 2.10.
  4664.  
  4665.  
  4666.  
  4667.  
  4668.                            Bingo 2.11 Reference Manual
  4669.                                        78
  4670.  
  4671.  
  4672.  
  4673.  
  4674.      Windows
  4675.      -------
  4676.  
  4677.      - window_edit
  4678.           this function ask for a filename, then splits the window and
  4679.           essentially performs and edit_file function for the requested
  4680.           filename.
  4681.  
  4682.      - window_load
  4683.           works like window_edit, except it forces a reload of the named
  4684.           file.
  4685.  
  4686.      - window_split
  4687.           this simply splits the current window in two and uses the current
  4688.           file for both.
  4689.  
  4690.      - window_vertical
  4691.           splits the current window vertically.  Windows can only be split
  4692.           so once.
  4693.  
  4694.      - window_close
  4695.           closes the current window and expands the above window to use its
  4696.           space.
  4697.  
  4698.      - window_zoom
  4699.           toggles the display between zoomed mode.  When the display is
  4700.           zoomed, the current window takes up the entire display, but Bingo
  4701.           'remembers' the rest of the windows and will restore them when
  4702.           zoom mode is toggled again.
  4703.  
  4704.      - window_one
  4705.           this function makes the current window the only window, wiping
  4706.           out all other windows.
  4707.  
  4708.      - window_next
  4709.           this moves to the next window down, or wraps to the top window if
  4710.           necessary.
  4711.  
  4712.      - window_previous
  4713.           this moves to the next window up, or wraps to the bottom if
  4714.           necessary.
  4715.  
  4716.      - window_top
  4717.           jumps to the topmost, leftmost window.
  4718.  
  4719.      - window_bottom
  4720.           jumps to the bottom-most, rightmost window.
  4721.  
  4722.  
  4723.  
  4724.  
  4725.  
  4726.                            Bingo 2.11 Reference Manual
  4727.                                        79
  4728.  
  4729.  
  4730.  
  4731.  
  4732.      - window_resize
  4733.           this allows you to resize the current window (and its left or
  4734.           right sibling, if it exists) and the window below (and *its* left
  4735.           or right sibling, if it exists) by 'rubberbanding' the current
  4736.           status line up and down.
  4737.  
  4738.  
  4739.  
  4740.  
  4741.  
  4742.  
  4743.  
  4744.  
  4745.  
  4746.  
  4747.  
  4748.  
  4749.  
  4750.  
  4751.  
  4752.  
  4753.  
  4754.  
  4755.  
  4756.  
  4757.  
  4758.  
  4759.  
  4760.  
  4761.  
  4762.  
  4763.  
  4764.  
  4765.  
  4766.  
  4767.  
  4768.  
  4769.  
  4770.  
  4771.  
  4772.  
  4773.  
  4774.  
  4775.  
  4776.  
  4777.  
  4778.  
  4779.  
  4780.  
  4781.  
  4782.  
  4783.  
  4784.                            Bingo 2.11 Reference Manual
  4785.                                        80
  4786.  
  4787.  
  4788.  
  4789.  
  4790.      Printing
  4791.      --------
  4792.  
  4793.      - print_file
  4794.           print the current file, or a marked block if there is one, using
  4795.           the current printer settings, to the current destination. 
  4796.           Whenever Bingo encounters a formfeed character, it will assume
  4797.           that is the start of a new page, and start the remainder of the
  4798.           line at the left margin.
  4799.  
  4800.      - send_lf
  4801.           send a line feed character to the destination.
  4802.  
  4803.      - send_ff
  4804.           send a formfeed character to the destination
  4805.  
  4806.      - send_sequence
  4807.           send a sequence of character values to the printer; e.g.
  4808.                          12,12,12,12,12
  4809.           sends a series of 5 ASCII 12's (decimal) to the destination
  4810.  
  4811.  
  4812.  
  4813.  
  4814.  
  4815.  
  4816.  
  4817.  
  4818.  
  4819.  
  4820.  
  4821.  
  4822.  
  4823.  
  4824.  
  4825.  
  4826.  
  4827.  
  4828.  
  4829.  
  4830.  
  4831.  
  4832.  
  4833.  
  4834.  
  4835.  
  4836.  
  4837.  
  4838.  
  4839.  
  4840.  
  4841.  
  4842.                            Bingo 2.11 Reference Manual
  4843.                                        81
  4844.  
  4845.  
  4846.  
  4847.  
  4848.      Error Parsing and Undo
  4849.      ----------------------
  4850.  
  4851.      - setup_err_parse
  4852.           this function will prompt you for a filename.  Bingo will from
  4853.           then on use the named file as the error file.  This must be
  4854.           called before next_error, prev_error, or last_error are called.
  4855.  
  4856.      - next_error
  4857.           moves, within the current window, to the next error as found in
  4858.           the current error file.  If no more errors can be found, Bingo
  4859.           will say so, and display the last non-blank line in the error
  4860.           file.  Otherwise, Bingo will edit the appropriate file into the
  4861.           current window, as well as highlighting the line in the error
  4862.           file being referenced.
  4863.  
  4864.      - prev_error
  4865.           same as error except it moves backward through the error file.
  4866.  
  4867.      - last_error
  4868.           redisplays the last error message, if there was one.
  4869.  
  4870.      - rotate_kill
  4871.           pops up the current kill stack and allows you to arbitrarily move
  4872.           a line of text to the top of the stack.
  4873.  
  4874.      - unkill
  4875.           inserts the top member of the stack at the current position.  If
  4876.           the top member of the stack was a full line, it is inserted above
  4877.           the current line.  Removes the top member from the stack.
  4878.  
  4879.      - paste_kill
  4880.           inserts the top member of the stack at the current position.  If
  4881.           the top member of the stack was a full line, it is inserted above
  4882.           the current line.  Leaves the stack itself alone.
  4883.  
  4884.      - restore_line
  4885.           restores the current line to its former form.
  4886.  
  4887.  
  4888.  
  4889.  
  4890.  
  4891.  
  4892.  
  4893.  
  4894.  
  4895.  
  4896.  
  4897.  
  4898.  
  4899.  
  4900.                            Bingo 2.11 Reference Manual
  4901.                                        82
  4902.  
  4903.  
  4904.  
  4905.  
  4906.      Configuration
  4907.      -------------
  4908.  
  4909.      - save_settings
  4910.           saves the current config settings to the file you name, usually
  4911.           BINGO.INI.  Upon startup, Bingo looks in the local directory then
  4912.           in Bingo's execution directory for BINGO.INI.
  4913.  
  4914.      - conf_color
  4915.           configure the color settings.  You select the color you are
  4916.           interested in by pressing the appropriate color.  Then, by
  4917.           watching the bottom line on the screen and pressing the up and
  4918.           down arrow keys for the foreground and the pageup and pagedown
  4919.           keys for the background, you select the color you want.  Pressing
  4920.           return will select the color.  For the overscan (border)
  4921.           attribute, only the background attribute matters.
  4922.  
  4923.      - conf_lfs
  4924.           alter the lfs-only setting.  If on, this setting has Bingo write
  4925.           files with lines separated by LF's only, in the UNIX fashion. 
  4926.           Otherwise, Bingo uses CR-LF pairs to delimit lines.
  4927.  
  4928.      - conf_backups
  4929.           allows you to specify the character Bingo uses to automatically
  4930.           create backup files when a file is saved.  The algorithm used
  4931.           takes the character you give and uses it to flesh out the
  4932.           extension of the original file to three characters; if the
  4933.           extension is already 3 characters long, the backup character
  4934.           replaces the third character of the extension.  For example, if
  4935.           the backup character is '$', 
  4936.                main.c         becomes        main.c$$
  4937.                main.cp        becomes        main.cp$
  4938.                main.pas       becomes        main.pa$
  4939.  
  4940.      - conf_eof
  4941.           alter whether Bingo writes a EOF character at the end of files
  4942.           (^Z).
  4943.  
  4944.      - conf_tabexpand
  4945.           THIS FUNCTION HAS BEEN DELETED AS OF VERSION 2.10.
  4946.  
  4947.      - conf_search
  4948.           allows you to predetermine which flags (I/G/B/etc...) will be set
  4949.           initially for a search and replace attempts.
  4950.  
  4951.      - conf_stripping
  4952.           onfigure whether Bingo strips the high bit of characters when
  4953.           reading.  Only really useful when reading Wordstar files.
  4954.  
  4955.  
  4956.  
  4957.  
  4958.                            Bingo 2.11 Reference Manual
  4959.                                        83
  4960.  
  4961.  
  4962.  
  4963.  
  4964.      - conf_rmargin
  4965.           set the right margin.  Affects paragraph reformatting and word
  4966.           wrap.  This changes the current buffer's setting and the global
  4967.           setting.    
  4968.      - conf_autoindent
  4969.           set whether Bingo uses autoindent mode.  Affects paragraph
  4970.           reformatting and word wrap.  This changes both the current
  4971.           buffer's setting and the global setting.
  4972.  
  4973.      - conf_wordwrap
  4974.           set the word wrap mode.  This changes both the current buffer's
  4975.           setting and the global setting.
  4976.  
  4977.      - conf_insert
  4978.           whether Bingo is in insert/overwrite mode.  This changes both the
  4979.           current buffer's setting and the global setting.
  4980.  
  4981.      - conf_tabsize
  4982.           set the tabsize.  This changes both the current buffer's setting
  4983.           and the global setting.
  4984.  
  4985.      - conf_backspace
  4986.           configure the backspace mode
  4987.                          1. Delete single chars
  4988.                          2. Delete spaces back to tab setting
  4989.                          3. Delete spaces to left margin
  4990.                          4. Rubout
  4991.           This changes both the current buffer's setting and the global
  4992.           setting.
  4993.  
  4994.      - conf_macro_death
  4995.           set whether a keystroke interrupts macros.  If on, this will slow
  4996.           things down a bit, but can prevent runaway macros.
  4997.  
  4998.      - conf_cmode
  4999.           configure whether Bingo uses C Mode on *.c and *.h files.  Allows
  5000.           you to choose between two different modes of C indention:
  5001.  
  5002.                     for(i=0;i<10;i++){   and    for(i=0;i<10;i++)
  5003.                          ...stuff...            {
  5004.                     }                                ...stuff...
  5005.                                                 }
  5006.           This changes both the current buffer's setting and the global
  5007.           setting.
  5008.  
  5009.      - conf_sound
  5010.           allows you to set the frequency of the beep Bingo uses.  Setting
  5011.           it to zero will effectively turn off the sound.
  5012.  
  5013.  
  5014.  
  5015.  
  5016.                            Bingo 2.11 Reference Manual
  5017.                                        84
  5018.  
  5019.  
  5020.  
  5021.  
  5022.      - conf_mdelay
  5023.           allows you to specify the timing delay between repetitions of a
  5024.           function(s) being executed while a mouse button is held down. 
  5025.           For example, on reasonably quick machines, paging down while
  5026.           holding the mouse button down on one of the status line
  5027.           "hotspots" occurred so fast with version 2.0 so as to be useless. 
  5028.  
  5029.      - conf_button_wait
  5030.           allows you to configure, in milliseconds, the amount of delay
  5031.           Bingo will wait for the second click of a double click.
  5032.  
  5033.      - conf_shadow
  5034.           silly function, configures whether Bingo uses "shadow" boxes. 
  5035.           Play with it, amaze your friends.
  5036.  
  5037.      - conf_win_close
  5038.           controls whether Bingo automatically closes a window when the
  5039.           file is closed.
  5040.  
  5041.      - conf_def_ext
  5042.           allows you to specify the file extensions Bingo will attempt to
  5043.           use when you specify a filename without '.'.  The extensions are
  5044.           checked in order.
  5045.  
  5046.      - conf_video_mode
  5047.           allows you to choose from between three screen handling options:
  5048.                     - autodetect with retrace checking
  5049.                     - autodetect with no retrace checking
  5050.                     - 43 or 50 line mode, if supported
  5051.           Retrace checking will only be in effect if there are only 25
  5052.           lines to be displayed.
  5053.  
  5054.      - conf_cursor
  5055.           THIS FUNCTION HAS BEEN DROPPED FROM VERSION 2.10.
  5056.  
  5057.      - conf_prn
  5058.           set the printer destination, between the default serial port, the
  5059.           default parallel port, or a file.
  5060.  
  5061.      - conf_tmarg
  5062.           set the top margin, in terms of number of lines.
  5063.  
  5064.      - conf_bmarg
  5065.           set the bottom margin, in terms of number of lines.
  5066.  
  5067.      - conf_lmarg
  5068.           set the left margin which will be used when printing, in terms of
  5069.           spaces.
  5070.  
  5071.      - conf_lines_per
  5072.           set the lines per page, counting the top margin.
  5073.  
  5074.                            Bingo 2.11 Reference Manual
  5075.                                        85
  5076.  
  5077.  
  5078.  
  5079.  
  5080.      - conf_null
  5081.           THIS FUNCTION HAS BEEN DROPPED FROM VERSION 2.10.
  5082.  
  5083.      - conf_ctrl_display
  5084.           THIS FUNCTION HAS BEEN DROPPED FROM VERSION 2.10.
  5085.  
  5086.      - conf_kill_size
  5087.           alters the size of the kill buffer.
  5088.  
  5089.      - conf_cut_stack
  5090.           allows you to choose whether text about to be discarded from the
  5091.           paste buffer should be placed on the stack.  If this is on, this
  5092.           will slow block operations down a bit, but it is a nice safety
  5093.           feature.
  5094.  
  5095.      - conf_auto_cut
  5096.           allows you to toggle how the 'cut' & 'copy' functions respond
  5097.           when no block has been marked.  If auto cut is active, these
  5098.           functions will cut (or copy) the current line.  If auto cut is
  5099.           not active, the current line will be Linemarked.
  5100.  
  5101.      - conf_smart_tabs
  5102.           allows you to specify whether or not "Smart" tabs are active. 
  5103.           Smart tabs cause the 'insert_tab' function to tab over to the
  5104.           same column as the next nonspace character on the line previous. 
  5105.           This changes both the current buffer's setting and the global
  5106.           setting.
  5107.  
  5108.      - conf_matching
  5109.           configures matching mode.  If matching mode is active, entering a
  5110.           '[{<(' character will cause its matching close member to be
  5111.           entered automatically.  This changes both the current buffer's
  5112.           setting and the global setting.
  5113.  
  5114.      - conf_trail
  5115.           allows you to configure whether or not Bingo strips trailing
  5116.           spaces.
  5117.  
  5118.  
  5119.  
  5120.  
  5121.  
  5122.  
  5123.  
  5124.  
  5125.  
  5126.  
  5127.  
  5128.  
  5129.  
  5130.  
  5131.  
  5132.                            Bingo 2.11 Reference Manual
  5133.                                        86
  5134.  
  5135.  
  5136.  
  5137.  
  5138.      - conf_bounce
  5139.           allows you what cursor movement paradigm Bingo uses.  If Bounce
  5140.           mode is active, Bingo views the entire document as one long
  5141.           string of characters.  Thus, you cannot move off of exiting text. 
  5142.           Further, the cursor will automatically wrap at the end of lines. 
  5143.           If Bounce mode is turned off, cursor movement is by the more
  5144.           traditional method, where you can move any where (horizontally)
  5145.           you wish.
  5146.  
  5147.      - conf_key_bios
  5148.           this governs whether or not Bingo will use the Extended Keyboard
  5149.           Bios if it is found.  On some machines, Bingo may identify it
  5150.           incorrectly, or there may be compatibility problems.  This
  5151.           function allows you to tell Bingo to disregard the extended Bios,
  5152.           even if it is found.  If this is on, the two sets of arrow keys,
  5153.           for example, will be recognized as different.  They will
  5154.           therefore have to be defined separately in your keyboard config
  5155.           file.
  5156.  
  5157.      - conf_erronly
  5158.           allows you to tell Bingo to further restrict valid error lines to
  5159.           those containing the word 'error' (any case).  
  5160.  
  5161.      - conf_mouse
  5162.           controls whether or not Bingo uses a Mouse, if it finds one.
  5163.  
  5164.      - conf_profile
  5165.           controls whether Bingo will check for, and load if found, the
  5166.           profile file of a file's file extension each time a file is
  5167.           loaded.
  5168.  
  5169.      - conf_word
  5170.           allows you to edit the string containing what characters are not
  5171.           part of a word.
  5172.  
  5173.      - conf_scr_save
  5174.           controls whether Bingo will save, and then restore, the DOS
  5175.           screen upon startup and exit.  Will cost you some memory.
  5176.  
  5177.      - conf_name_save
  5178.           controls whether, and how, Bingo saves the last 15 files edited. 
  5179.           You can turn it off, tell it to save the info in the current
  5180.           directory (where Bingo looks first upon startup), or in Bingo's
  5181.           home directory.
  5182.  
  5183.      - conf_delims
  5184.           allows you to input and edit pairs of delimiters for Bingo to
  5185.           balance with the 'match_delim' function.  Both delimiters must be
  5186.           non-blank.
  5187.  
  5188.  
  5189.  
  5190.                            Bingo 2.11 Reference Manual
  5191.                                        87
  5192.  
  5193.  
  5194.  
  5195.  
  5196.      - conf_eol_display
  5197.           allows you to enter the ASCII decimal value of the character to
  5198.           be displayed as the end of line character.  The default is 32,
  5199.           the space character.
  5200.  
  5201.      - conf_exit_to_pick
  5202.           controls Bingo's actions upon exit.  If turned on, Bingo will
  5203.           popup an edit box when you quit the program (except when you exit
  5204.           through the abort_all function).
  5205.  
  5206.      - conf_prn_eol
  5207.           controls whether Bingo terminates lines with a linefeed only or a
  5208.           carraige return/linefeed pair while printing.
  5209.  
  5210.      - conf_prn_lineno
  5211.           sets whether or not Bingo prints line numbers on each line it
  5212.           prints.
  5213.  
  5214.      - conf_prn_header
  5215.           sets whether or not Bingo prints page headers on each page it
  5216.           prints.  Headers consist of the filename, the page number, and
  5217.           the date/time.
  5218.  
  5219.      - conf_timed_backups
  5220.           allows you to specify how often, in terms of changes, to save a
  5221.           backup of a file.  A value of zero (0) indicates no automatic
  5222.           backups are to take place.  The value input becomes the defult
  5223.           value for any subsequently entered files, and becomes the value
  5224.           for the current file; it does not change the value for any
  5225.           existing files.  Any operation which changes the file will
  5226.           increment the change counter.  The current number of changes for
  5227.           each file is displayed on the info screen.  When the
  5228.           predetermined number of changes has occurred, the file is saved
  5229.           as 
  5230.                  backXXXX.bak 
  5231.           where XXXX is the buffer 4 digit id number.  This id number is
  5232.           unique over an editing session, and is displayed as part of the
  5233.           info screen.  The backup files are identical to the files
  5234.           themselves, except that the first line contains the original name
  5235.           of the file (full pathname) and the time of the backup. 
  5236.  
  5237.           *Note*: Be very careful with setting this value.  Generally, a
  5238.           setting between 256 and 1024 is very useful.  However, if you are
  5239.           editing a multi-megabyte file, backups can be a large pain
  5240.           because of the time involved in saving the file.  
  5241.  
  5242.      - conf_carriage 
  5243.           this function toggles on and off whether or not the 'carraige'
  5244.           function splits lines. 
  5245.  
  5246.  
  5247.  
  5248.                            Bingo 2.11 Reference Manual
  5249.                                        88
  5250.  
  5251.  
  5252.  
  5253.  
  5254.      - conf_delete_join 
  5255.           this function toggles on and off whether or not deleting at the
  5256.           end of a line brings the next line up. 
  5257.  
  5258.  
  5259.  
  5260.  
  5261.  
  5262.  
  5263.  
  5264.  
  5265.  
  5266.  
  5267.  
  5268.  
  5269.  
  5270.  
  5271.  
  5272.  
  5273.  
  5274.  
  5275.  
  5276.  
  5277.  
  5278.  
  5279.  
  5280.  
  5281.  
  5282.  
  5283.  
  5284.  
  5285.  
  5286.  
  5287.  
  5288.  
  5289.  
  5290.  
  5291.  
  5292.  
  5293.  
  5294.  
  5295.  
  5296.  
  5297.  
  5298.  
  5299.  
  5300.  
  5301.  
  5302.  
  5303.  
  5304.  
  5305.  
  5306.                            Bingo 2.11 Reference Manual
  5307.                                        89
  5308.  
  5309.  
  5310.  
  5311.  
  5312.                                 License Agreement
  5313.                                 -----------------
  5314.  
  5315.           This section tells you is how to become a registered user once
  5316.      you decide that you like the program and want to use it on a regular
  5317.      basis.
  5318.  
  5319.           Bingo is distributed under the shareware marketing concept; it is
  5320.      not free software and it has not been released to the public domain.
  5321.      The documentation, executable images, and all other files distributed
  5322.      with Bingo are copyrighted.
  5323.  
  5324.           Shareware is a way of distributing computer software that allows
  5325.      you to try out a program before you purchase it. Programs distributed
  5326.      as shareware typically give you some period of time to use the program
  5327.      and evaluate its usefulness to you. If the program doesn't meet your
  5328.      needs, you're under no obligation to pay for it. If you do find the
  5329.      program useful and wish to continue using it on a regular basis, the
  5330.      shareware program's author usually requests that you pay for the
  5331.      program by sending him or her a completed registration form and
  5332.      payment. This is the approach I have taken in making Bingo available
  5333.      to the public.
  5334.  
  5335.           If you find Bingo to be a useful addition to your software
  5336.      library, you're requested to become a registered user by completing
  5337.      the enclosed registration form and returning it along with the
  5338.      indicated license/registration fee. I hope that you will agree that
  5339.      the $40.00 license fee (for the Single Version registration) or $75.00
  5340.      license fee (for the Lifetime registration) is a small price to pay
  5341.      for the continued use of the program. It requires a large investment
  5342.      to develop, market, and support a product of this complexity. Your
  5343.      support in the form of a license/registration fee will continue to
  5344.      make good software available at low prices.
  5345.  
  5346.           Quantity discounts are available to business, government, and
  5347.      other organizations that wish to use Bingo on multiple computer
  5348.      systems. Bingo is also available at very special rates to
  5349.      organizations who wish to use it for promotional purposes. Write the
  5350.      author for information on using the program this way.
  5351.  
  5352.           You are granted a limited license to use and examine Bingo on a
  5353.      trial basis to determine if Bingo is suitable for your needs. If you
  5354.      find Bingo useful and continue to use it on a regular basis, you
  5355.      should complete and return the registration form along with the
  5356.      indicated license/registration fee.
  5357.  
  5358.  
  5359.  
  5360.  
  5361.  
  5362.  
  5363.  
  5364.                            Bingo 2.11 Reference Manual
  5365.                                        90
  5366.  
  5367.  
  5368.  
  5369.  
  5370.           You are encouraged to make copies of Bingo for the trial use of
  5371.      other individuals and organizations, subject to the following
  5372.      restrictions:
  5373.           1)   All Bingo distribution files must be copied in unmodified
  5374.                form.
  5375.           2)   You may not include any other files with the distributed
  5376.                copy.
  5377.  
  5378.           You may not distribute Bingo with any other product or
  5379.      service without written permission of the author.
  5380.  
  5381.           Bingo may be included on electronic bulletin board systems for
  5382.      downloading by users of the bulletin board provided the above
  5383.      restrictions are met.
  5384.  
  5385.           Bingo and all accompanying materials are provided "as is" without
  5386.      warranty of any kind. The entire risk of using Bingo is assumed by
  5387.      you.
  5388.  
  5389.           The author, Christopher R. S. Schanck, makes no warranty of any
  5390.      kind, expressed or implied, including but not limited to any
  5391.      warranties of merchantability and fitness for a particular purpose.
  5392.  
  5393.           In no event will the author, Christopher R. S. Schanck, be liable
  5394.      for any damages whatsoever arising out of your use or inability to use
  5395.      the program.
  5396.  
  5397.           If you use Bingo on a regular basis, you should complete the
  5398.      registration form at the end of this document and return it along with
  5399.      the indicated license/registration fee. Registration gives you the
  5400.      right to use the software as documented in the license.
  5401.  
  5402.           A registration fee of $40.00 establishes you as a registered user
  5403.      of the current version of Bingo. 
  5404.  
  5405.           A registration of $75.00 establishes you as a Lifetime
  5406.      registrant, and in this situation you are entitled to the next version
  5407.      of Bingo free.  After that, you will be notified of each subsequent
  5408.      version, and they will be available for a five (5) dollar fee.
  5409.  
  5410.           When you submit your registration fee, unless you specifically
  5411.      request otherwise, the author will mail you a copy of the current
  5412.      version of Bingo and accompanying documentation on disk (3.5" or
  5413.      5.25") for free.  Mailing addresses outside of the continental United
  5414.      States will need to submit a $15.00 shipping and handling charge.
  5415.  
  5416.  
  5417.  
  5418.  
  5419.  
  5420.  
  5421.  
  5422.                            Bingo 2.11 Reference Manual
  5423.                                        91
  5424.  
  5425.  
  5426.  
  5427.  
  5428.                          Registration Form - Bingo 2.11
  5429.                          -------------------------------
  5430.  
  5431.      Remit to:            Christopher R.S. Schanck
  5432.                                    PO Box 279
  5433.                                 Hanover MD 21076
  5434.  
  5435.                                    Bingo 2.11
  5436.  
  5437.      Disk size, circle one: (   3.5"   /   5.25"   / SEND NO DISK )
  5438.  
  5439.  
  5440.      Registration OPTIONS:
  5441.  
  5442.      One-Time Registration ............ _____ @ $ 40.00 each  $ _____
  5443.  
  5444.      Lifetime Registration ............ _____ @ $ 75.00 each  $ _____
  5445.  
  5446.  
  5447.  
  5448.      Bingo printed Documentation ...... _____ @ $ 15.00 each  $ _____
  5449.  
  5450.  
  5451.  
  5452.                                                     Subtotal  $ _____
  5453.  
  5454.  
  5455.      Shipping, Outside the Continental U.S. ......... $ 15.00 $ _____
  5456.  
  5457.                                             Total (U.S.Funds) $ _____
  5458.          
  5459.  
  5460.  
  5461.      Name: __________________________________________________________
  5462.  
  5463.      Company: _______________________________________________________
  5464.  
  5465.      Address: _______________________________________________________
  5466.  
  5467.      ________________________________________________________________
  5468.  
  5469.      ________________________________________________________________
  5470.  
  5471.      Day Phone: _______________________________ 
  5472.  
  5473.      Eve Phone: _______________________________
  5474.  
  5475.  
  5476.                     Prices subject to change without notice.
  5477.  
  5478.  
  5479.  
  5480.                            Bingo 2.11 Reference Manual
  5481.                                        92
  5482.  
  5483.  
  5484.  
  5485.  
  5486.                           Registration Form - Continued
  5487.  
  5488.      I acquired Bingo 2.11 from
  5489.  
  5490.      [ ] - Friend                
  5491.  
  5492.      [ ] - Computer Club
  5493.      Which One? ______________________________________________________
  5494.  
  5495.      [ ] - Electronic BBS        
  5496.      Which One? ______________________________________________________
  5497.      Phone #? ________________________________________________________
  5498.  
  5499.      [ ] - Other
  5500.      Specify: ________________________________________________________
  5501.  
  5502.      I would also appreciate any input you would care to give concerning
  5503.      Bingo. If you have any ideas or comments that would make Bingo a
  5504.      better program, then please let me know.
  5505.  
  5506.  
  5507.  
  5508.  
  5509.  
  5510.  
  5511.  
  5512.  
  5513.  
  5514.  
  5515.  
  5516.  
  5517.  
  5518.  
  5519.  
  5520.  
  5521.  
  5522.  
  5523.  
  5524.  
  5525.  
  5526.  
  5527.  
  5528.  
  5529.  
  5530.  
  5531.  
  5532.  
  5533.  
  5534.  
  5535.  
  5536.  
  5537.  
  5538.                            Bingo 2.11 Reference Manual
  5539.                                        93
  5540.  
  5541.  
  5542.  
  5543.  
  5544.                                    The Author
  5545.                                    ----------
  5546.  
  5547.           I received my M.S. in Computer Science from The Ohio State
  5548.      University in March of 1990, and am now employed by a large
  5549.      engineering/manufacturing firm in the Baltimore area.  I was born in a
  5550.      steel town in Eastern Pennsylvania, and attended The Pennsylvania
  5551.      State University as an undergraduate, graduating in May of 1988. I
  5552.      hold a first-degree Black Belt in Tae Kwon Do, and I am an avid reader
  5553.      of science-fiction, fantasy, military fiction, mythology, and just
  5554.      about any other occurance of the printed word.
  5555.  
  5556.  
  5557.  
  5558.  
  5559.  
  5560.  
  5561.  
  5562.  
  5563.  
  5564.  
  5565.  
  5566.  
  5567.  
  5568.  
  5569.  
  5570.  
  5571.  
  5572.  
  5573.  
  5574.  
  5575.  
  5576.  
  5577.  
  5578.  
  5579.  
  5580.  
  5581.  
  5582.  
  5583.  
  5584.  
  5585.  
  5586.  
  5587.  
  5588.  
  5589.  
  5590.  
  5591.  
  5592.  
  5593.  
  5594.  
  5595.  
  5596.                            Bingo 2.11 Reference Manual
  5597.                                        94
  5598.  
  5599.  
  5600.  
  5601.  
  5602.                                 Acknowledgements
  5603.                                 ----------------
  5604.  
  5605.           There are many I must acknowledge for the inspiration for writing
  5606.      this program: family, friends, colleagues. In addition, I want to
  5607.      thank Borland for their excellent Turbo C compiler, which I used to
  5608.      write Bingo; IBM for making my beloved baby, lo those many years ago;
  5609.      and all the other folks who wrote software I used to create Bingo. 
  5610.      Thanks to all my computer science professors, who instilled the
  5611.      knowledge to write such an application in me, often against my will. 
  5612.      I also thank the members of the Columbus Computer Society (CCS),
  5613.      particularly the members of the Programmer's SIG, several of whom
  5614.      served as Beta test people during versions 1.0 to 2.0, putting their
  5615.      programs In Harm's Way as they tested features.
  5616.           Thanks to the folks at Home Box Office for running an endless
  5617.      amount of truly bad movies at all hours of the night to keep me
  5618.      company on some of the more involved programming adventures.  
  5619.           And mucho thanks to my premier beta-tester, Bob Boyken, who was
  5620.      also the first registrant of version 1.1a.  Bob provided me with much
  5621.      needed time, effort, and ideas, not to mention a help file.  His
  5622.      efforts, both in using Bingo regularly, and in testing things for me
  5623.      on particular hardware combinations, was nothing short of awesome.
  5624.           Additional thanks to Rich Thompson, for looking at the earliest
  5625.      virtual-memory version of 2.10 and not cringing.  Or at least not
  5626.      cringing too much.
  5627.           Thanks to Beaker, Ernie, Cookie, and the rest of the Muppets for
  5628.      frequent sanity checks.
  5629.           Thanks to the BedPiglet, for understanding the time involved in
  5630.      doing this, and for her smile.
  5631.  
  5632.  
  5633.  
  5634.  
  5635.  
  5636.  
  5637.  
  5638.  
  5639.  
  5640.  
  5641.  
  5642.  
  5643.  
  5644.  
  5645.  
  5646.  
  5647.  
  5648.  
  5649.  
  5650.  
  5651.  
  5652.  
  5653.  
  5654.                            Bingo 2.11 Reference Manual
  5655.                                        95
  5656.  
  5657.  
  5658.  
  5659.  
  5660.                                       Index
  5661.                                       -----
  5662.  
  5663.      abort . . . . . . . . . . . . . . . . . . . 21, 22, 40, 50, 64, 65, 88
  5664.      abort_all . . . . . . . . . . . . . . . . . . . . . . . . . 40, 65, 88
  5665.      again . . . . . . . . .  7, 18, 20, 26, 32, 38, 46, 51, 52, 55, 66, 79
  5666.      align . . . . . . . . . . . . . . . . . . . . . . . . . . .  3, 48, 74
  5667.      ascii_table . . . . . . . . . . . . . . . . . . . . . . . . 36, 50, 75
  5668.      author  . . . . . . . . . . . . . . . . . . . . . . . . 54, 90, 91, 94
  5669.      back_space  . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
  5670.      back_tab  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
  5671.      backup_all  . . . . . . . . . . . . . . . . . . . . . . . . . . 41, 65
  5672.      backup_file . . . . . . . . . . . . . . . . . . . . . . . . . . 41, 65
  5673.      begin_line  . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
  5674.      begin_of_text   . . . . . . . . . . . . . . . . . . . . . . . . . . 69
  5675.      block_copy  . . . . . . . . . . . . . . . . . . . . . . . . . . 47, 71
  5676.      block_delete  . . . . . . . . . . . . . . . . . . . . . . . . . 47, 72
  5677.      block_load  . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
  5678.      block_move  . . . . . . . . . . . . . . . . . . . . . . . . . . 47, 71
  5679.      block_save  . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
  5680.      bot_of_file . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
  5681.      bottom_of_block . . . . . . . . . . . . . . . . . . . . . . . . . . 69
  5682.      bottom_of_screen  . . . . . . . . . . . . . . . . . . . . . . . . . 68
  5683.      buffer_info . . . . . . . . . . . . . . . . . . . . . . . . . . 47, 72
  5684.      carriage  . . . . . . . . . . . . . . . . . . . . . . . . . 39, 62, 88
  5685.      center_line . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
  5686.      center_text   . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
  5687.      chdir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52, 77
  5688.      choose_file . . . . . . . . . . . . . . . . . . . . . . . . . . 39, 64
  5689.      clean_all   . . . . . . . . . . . . . . . . . . . . . . . . . . 40, 65
  5690.      clean_file  . . . . . . . . . . . . . . . . . . . . . . . . . . 40, 65
  5691.      cmd_line  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
  5692.      compuserve  . . . . . . . . . . . . . . . . . . . . . . . . . 6, 9, 10
  5693.      conf_auto_cut . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
  5694.      conf_autoindent . . . . . . . . . . . . . . . . . . . . . . . . . . 84
  5695.      conf_backspace  . . . . . . . . . . . . . . . . . . . . . . . . . . 84
  5696.      conf_backups  . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
  5697.      conf_bmarg  . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
  5698.      conf_bounce . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
  5699.      conf_button_wait  . . . . . . . . . . . . . . . . . . . . . . . . . 85
  5700.      conf_cmode  . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
  5701.      conf_color  . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
  5702.      conf_ctrl_display . . . . . . . . . . . . . . . . . . . . . . . . . 86
  5703.      conf_cursor . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
  5704.      conf_cut_stack  . . . . . . . . . . . . . . . . . . . . . . . . 59, 86
  5705.      conf_def_ext  . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
  5706.      conf_delims   . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
  5707.      conf_eof  . . . . . . . . . . . . . . . . . . . . . . . . . . . 39, 83
  5708.      conf_eol_display  . . . . . . . . . . . . . . . . . . . . . . . . . 88
  5709.      conf_erronly  . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
  5710.      conf_exit_to_pick   . . . . . . . . . . . . . . . . . . . . . . . . 88
  5711.  
  5712.                            Bingo 2.11 Reference Manual
  5713.                                        96
  5714.  
  5715.  
  5716.  
  5717.  
  5718.      conf_insert . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
  5719.      conf_key_bios . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
  5720.      conf_kill_size  . . . . . . . . . . . . . . . . . . . . . . . . 59, 86
  5721.      conf_lfs  . . . . . . . . . . . . . . . . . . . . . . . . . . . 39, 83
  5722.      conf_lines_per  . . . . . . . . . . . . . . . . . . . . . . . . . . 85
  5723.      conf_lmarg  . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
  5724.      conf_macro_death  . . . . . . . . . . . . . . . . . . . . . . . . . 84
  5725.      conf_matching . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
  5726.      conf_mdelay . . . . . . . . . . . . . . . . . . . . . . . . . . 34, 85
  5727.      conf_mouse  . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
  5728.      conf_name_save  . . . . . . . . . . . . . . . . . . . . . . . . . . 87
  5729.      conf_null . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
  5730.      conf_prn  . . . . . . . . . . . . . . . . . . . . . . . . . . . 85, 88
  5731.      conf_prn_eol  . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
  5732.      conf_prn_header   . . . . . . . . . . . . . . . . . . . . . . . . . 88
  5733.      conf_prn_lineno   . . . . . . . . . . . . . . . . . . . . . . . . . 88
  5734.      conf_profile  . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
  5735.      conf_rmargin  . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
  5736.      conf_scr_save   . . . . . . . . . . . . . . . . . . . . . . . . . . 87
  5737.      conf_search . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
  5738.      conf_shadow . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
  5739.      conf_smart_tabs . . . . . . . . . . . . . . . . . . . . . . . . . . 86
  5740.      conf_sound  . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
  5741.      conf_stripping  . . . . . . . . . . . . . . . . . . . . . . . . . . 83
  5742.      conf_tabexpand  . . . . . . . . . . . . . . . . . . . . . . . . . . 83
  5743.      conf_tabsize  . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
  5744.      conf_timed_backups  . . . . . . . . . . . . . . . . . . . . . . 41, 88
  5745.      conf_tmarg  . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
  5746.      conf_trail  . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
  5747.      conf_video_mode . . . . . . . . . . . . . . . . . . . . . . . . . . 85
  5748.      conf_word   . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
  5749.      conf_wordwrap . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
  5750.      copy  . . . . . . .  5, 10, 12, 40, 46, 47, 59, 65, 71, 72, 76, 86, 91
  5751.      copy_append . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
  5752.      cur_file  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
  5753.      cursor_down . . . . . . . . . . . . . . . . . . . . . . . . . . 34, 68
  5754.      cursor_left . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
  5755.      cursor_right  . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
  5756.      cursor_up . . . . . . . . . . . . . . . . . . . . . . . . . . . 51, 68
  5757.      cut . . . . . . . . . . . . . . . . . . . . 46, 47, 59, 63, 71, 72, 86
  5758.      cut_append  . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
  5759.      default_bspace  . . . . . . . . . . . . . . . . . . . . . . . . . . 63
  5760.      default_del . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
  5761.      define_scrap  . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
  5762.      del_bol . . . . . . . . . . . . . . . . . . . . . . . . . . 38, 59, 63
  5763.      del_char  . . . . . . . . . . . . . . . . . . . . . . . . . . . 62, 63
  5764.      del_eol . . . . . . . . . . . . . . . . . . . . . . . . . . 38, 59, 63
  5765.      del_line  . . . . . . . . . . . . . . . . . . . . . . . . . 38, 59, 63
  5766.      del_word_lt   . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
  5767.      del_word_rt   . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
  5768.      delete_file . . . . . . . . . . . . . . . . . . . . . . . . . . 40, 65
  5769.  
  5770.                            Bingo 2.11 Reference Manual
  5771.                                        97
  5772.  
  5773.  
  5774.  
  5775.  
  5776.      detab . . . . . . . . . . . . . . . . . . . . . . . . . . .  2, 48, 73
  5777.      display_file  . . . . . . . . . . . . . . . . . . . . . . . . . 51, 76
  5778.      down_page . . . . . . . . . . . . . . . . . . . . . . . . . . . 34, 68
  5779.      dup_line  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
  5780.      edit_file . . . . . . . . . . . . . . . . . . . 39, 40, 56, 58, 64, 79
  5781.      emacs_yank  . . . . . . . . . . . . . . . . . . . . . . . . . . 47, 72
  5782.      end_line  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
  5783.      end_macro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
  5784.      entab . . . . . . . . . . . . . . . . . . . . . . . . . . .  2, 48, 73
  5785.      exec_command  . . . . . . . . . . . . . . . . . . . . . . . . . 52, 77
  5786.      extend_mark . . . . . . . . . . . . . . . . . . . . . . . . . . 46, 71
  5787.      fcase_block . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
  5788.      file   2-4, 7, 11-16, 19, 21, 23-26, 28-31, 33, 34, 37, 39-42, 45, 46,
  5789.                     48-51, 55, 56, 57-59, 62, 64-69, 71-73, 75, 76, 78, 79,
  5790.                                                       81-83, 85, 87, 88, 95
  5791.      file_all  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
  5792.      fill_block  . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
  5793.      global  . . . . . . . . . . . . . . . . . . . . . . 50, 67, 75, 84, 86
  5794.      help  . . . . . . . 2, 3, 8, 12, 22, 33, 35, 43, 49, 51, 60, 74-76, 95
  5795.      indent_down . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
  5796.      indent_up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
  5797.      info  . . . . . . . . . . .  5, 22, 35, 47, 49, 52, 72, 75, 76, 87, 88
  5798.      insert_tab  . . . . . . . . . . . . . . . . . . . . . . . . . . 62, 86
  5799.      jump  . . . . . . . . . . . . . . . . . . . . . . . . . 45, 58, 68, 69
  5800.      jump_mark . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
  5801.      key_set_impress . . . . . . . . . . . . . . . . . . . . . . . . . . 78
  5802.      key_set_load  . . . . . . . . . . . . . . . . . . . . . . . . . 26, 78
  5803.      key_set_save  . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
  5804.      last_error  . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
  5805.      lcase_block . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
  5806.      leap_backward   . . . . . . . . . . . . . . . . . . . . . . . . . . 67
  5807.      leap_forward  . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
  5808.      license . . . . . . . . . . . . . . . . . . . . . . . . . .  5, 90, 91
  5809.      line_mark . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
  5810.      load_file . . . . . . . . . . . . . . . . . . . . . 29, 30, 39, 56, 64
  5811.      load_profile  . . . . . . . . . . . . . . . . . . . . . . . . . 50, 75
  5812.      look_buffer . . . . . . . . . . . . . . . . . . . . . . . . . . 47, 72
  5813.      macro  2, 3, 7, 13, 25, 28-30, 33, 42, 43, 50, 54, 55, 58, 67, 74, 75,
  5814.                                                                      78, 84
  5815.      main_menu . . . . . . . . . . . . . . . . . . . . . . . . . . . 20, 62
  5816.      mark_last_found   . . . . . . . . . . . . . . . . . . . . . . . . . 67
  5817.      match_delim . . . . . . . . . . . . . . . . . . . . . . . . . . 74, 87
  5818.      modify_save . . . . . . . . . . . . . . . . . . . . . . 29, 40, 64, 65
  5819.      modify_save_all . . . . . . . . . . . . . . . . . . . . . . 29, 40, 65
  5820.      mouse_scroll  . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
  5821.      name_buffer . . . . . . . . . . . . . . . . . . . . . . . . . . 47, 72
  5822.      next_error  . . . . . . . . . . . . . . . . . . . . . . . . 29, 58, 82
  5823.      next_file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
  5824.      next_word . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
  5825.      onekey_def  . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
  5826.      open_end  . . . . . . . . . . . . . . . . . . . . . . . . . . . 29, 30
  5827.  
  5828.                            Bingo 2.11 Reference Manual
  5829.                                        98
  5830.  
  5831.  
  5832.  
  5833.  
  5834.      paste . . . . . . . . . . . . . 21, 46, 47, 52, 59, 60, 71, 72, 82, 86
  5835.      paste_kill  . . . . . . . . . . . . . . . . . . . . . . 47, 60, 72, 82
  5836.      paste_replace . . . . . . . . . . . . . . . . . . . . . . . . . 46, 71
  5837.      pick_exec . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
  5838.      pick_file   . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
  5839.      place_mark  . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
  5840.      point_mark  . . . . . . . . . . . . . . . . . . . . . . . . . . 33, 71
  5841.      prev_error  . . . . . . . . . . . . . . . . . . . . . . . . . . 58, 82
  5842.      prev_file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
  5843.      prev_word . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
  5844.      print_file  . . . . . . . . . . . . . . . . . . . . . . . . . . 57, 81
  5845.      query_quote . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
  5846.      quit  . . . . . . . . . . . . . . . . . 21, 39, 40, 49, 64, 67, 75, 88
  5847.      quit_all  . . . . . . . . . . . . . . . . . . . . . . . . . . . 40, 64
  5848.      quit_and_save_status  . . . . . . . . . . . . . . . . . . . . . . . 75
  5849.      reform_para . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
  5850.      register  . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  5
  5851.      rename_file . . . . . . . . . . . . . . . . . . . . . . . . . . 39, 64
  5852.      repeat  . . . . . . . . . . . . . . . . . . . 2, 3, 51, 54, 66, 74, 76
  5853.      repeat_last   . . . . . . . . . . . . . . . . . . . . . . . . . 51, 76
  5854.      replace . . . . . . . . . . .  2, 3, 28, 42-44, 46, 50, 66, 67, 71, 83
  5855.      report_bsize  . . . . . . . . . . . . . . . . . . . . . . . . . 47, 72
  5856.      restore_line  . . . . . . . . . . . . . . . . . . . . . . . . . 59, 82
  5857.      rotate_kill . . . . . . . . . . . . . . . . . . . . . . . . . . 60, 82
  5858.      run_macro_file  . . . . . . . . . . . . . . . . . . . . . . . . . . 78
  5859.      save_all  . . . . . . . . . . . . . . . . . . . . . . . . . 29, 40, 65
  5860.      save_file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
  5861.      save_settings . . . . . . . . . . . . . . . . . . . . . . . . . 14, 83
  5862.      scrap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54, 78
  5863.      scroll_down . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
  5864.      scroll_left   . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
  5865.      scroll_right  . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
  5866.      scroll_up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
  5867.      search  . . . . . . . . 2, 3, 23, 28-30, 42-44, 50, 54, 66, 67, 74, 83
  5868.      search_macro  . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
  5869.      send_ff . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
  5870.      send_lf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
  5871.      send_sequence . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
  5872.      setup_err_parse . . . . . . . . . . . . . . . . . . . . . . 29, 58, 82
  5873.      shell . . . . . . . . . . . . . . . . . . . . . . . . . . . 37, 52, 77
  5874.      shift_block . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
  5875.      show_marks  . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
  5876.      single_key_load . . . . . . . . . . . . . . . . . . . . . . . . . . 78
  5877.      single_key_save . . . . . . . . . . . . . . . . . . . . . . . . . . 78
  5878.      snap_to_mouse_xy  . . . . . . . . . . . . . . . . . . . . . . . 33, 69
  5879.      sort_block  . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
  5880.      strip_highbit . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
  5881.      support . . . . . . . . . . . . . . 2, 3, 5, 8, 17, 35, 37, 42, 54, 90
  5882.      swap_buf_and_block  . . . . . . . . . . . . . . . . . . . . . . . . 72
  5883.      swap_execute  . . . . . . . . . . . . . . . . . . . . . 29, 51, 52, 77
  5884.      swap_shell  . . . . . . . . . . . . . . . . . . . . . . . . . . 52, 77
  5885.  
  5886.                            Bingo 2.11 Reference Manual
  5887.                                        99
  5888.  
  5889.  
  5890.  
  5891.  
  5892.      switch_file . . . . . . . . . . . . . . . . . . . . . . . . . . 40, 64
  5893.      time_stamp  . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
  5894.      toggle_autoindent . . . . . . . . . . . . . . . . . . . . . . . . . 62
  5895.      toggle_cmode  . . . . . . . . . . . . . . . . . . . . . . . . . 61, 62
  5896.      toggle_display  . . . . . . . . . . . . . . . . . . . . . . . . . . 75
  5897.      toggle_ins  . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
  5898.      toggle_wrap . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
  5899.      top_of_block  . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
  5900.      top_of_file . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
  5901.      top_of_screen . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
  5902.      twokey_def  . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
  5903.      ucase_block . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
  5904.      undefine_key  . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
  5905.      unkill  . . . . . . . . . . . . . . . . . . . . . . 38, 47, 60, 72, 82
  5906.      unmark  . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67, 71
  5907.      up_page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
  5908.      version_info  . . . . . . . . . . . . . . . . . . . . . . . . .  5, 76
  5909.      vertical_mark . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
  5910.      virtual memory  . . . . . . . . . . . . . . . . . . . . . 2, 7, 15, 16
  5911.      window_bottom . . . . . . . . . . . . . . . . . . . . . . . . . 29, 79
  5912.      window_close  . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
  5913.      window_edit . . . . . . . . . . . . . . . . . . . . . . . . . . 56, 79
  5914.      window_load . . . . . . . . . . . . . . . . . . . . . . . . . . 56, 79
  5915.      window_next . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
  5916.      window_one  . . . . . . . . . . . . . . . . . . . . . . . . 29, 56, 79
  5917.      window_previous . . . . . . . . . . . . . . . . . . . . . . . . 29, 79
  5918.      window_resize . . . . . . . . . . . . . . . . . . . . . . . 29, 56, 80
  5919.      window_split  . . . . . . . . . . . . . . . . . . . . . . . 29, 56, 79
  5920.      window_top  . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
  5921.      window_vertical . . . . . . . . . . . . . . . . . . . . . . . . 56, 79
  5922.      window_zoom . . . . . . . . . . . . . . . . . . . . . . . . . . 56, 79
  5923.      word_count  . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
  5924.      write_profile . . . . . . . . . . . . . . . . . . . . . . . . . 50, 76
  5925.      zap_file  . . . . . . . . . . . . . . . . . . . . . . . . . . . 40, 65
  5926.  
  5927.  
  5928.  
  5929.  
  5930.  
  5931.  
  5932.  
  5933.  
  5934.  
  5935.  
  5936.  
  5937.  
  5938.  
  5939.  
  5940.  
  5941.  
  5942.  
  5943.  
  5944.                            Bingo 2.11 Reference Manual
  5945.                                        100
  5946.  
  5947.