                         Read Me file for Bingo 2.11a
                         ----------------------------

          "I feel you have done a great programming job with
     Bingo ..."

          "I've chosen Bingo over most of its competition.  It's
     fully featured and configurable and offers and extensive
     menuing system for access to infrequently used commands."

          "Enclosed is my registration for Bingo.  This is a fine
     piece of work.  I must especially compliment the mouse
     interface, which is the best I have seen."

          "Great editor!  Exactly what I've been looking for.
      Please send the current version if I don't have the
      latest."

          "Keep up the good work, Bingo surely is one of the best
     editors around and deserves success."

          "Bingo's great!"

          "Bingo is an excellent text processor."

          "Couldn't live without Bingo now!"

     These are some of the things people have said about The
Bingo Programmer's Text Editor.  Now that you have this copy in
your hands, you can see for yourself what all the excitement is
about.

   This file list various pertinent information about the Bingo
Programmer's Text Editor such as:
   -->   included files
   -->   features of Bingo, and what's new with this version
   -->   major bugs fixed in this version
   -->   some notes about registering
   -->   author's comments
   -->   how to contact the author
   -->   how to acquire the latest version
   -->   Version 2.10x
   -->   Registering Bingo through the Public (software) Library (PsL)

Included files on disk/in archive:
----------------------------------

   READ.ME      : this file.  chock full of *extremely* important
                  stuff -- read this completely

   BE.EXE       : Bingo Editor 2.11a overlay executable

   BE.COM       : Bingo Editor 2.11a startup executable

   KEYCFG.EXE   : Bingo Editor 2.11a Key definition executable;
                  translates your definitions from text to
                  Bingo's 'compiled' format.

   KEYINFO.EXE  : Bingo Editor 2.11a Key information; extracts
                  plain text definitions from Bingo's compiled 
                  format.

   B.BAT        : Alternate batch file startup method which can
                  replace BE.COM

   BINGO.DOC    : documentation for Bingo; ready to be printed out
                  on an ascii line printer, laser printers included.

   REGISTER.DOC : copy of the license agreement and registration
                  form, ready to be printed out on an ascii line
                  printer.

   KEYCFG.SET   : compiled key configuration from BINGO.CFG, file
                  Bingo looks for on startup

   BINGO.INI    : initialization file for Bingo 2.11a
   
   BINGO.HLP    : help file for the supplied sample keyboard
                  definition file (the one I use)

   BINGO.CFG    : sample keyboard definition file (the one I use)

   Additionally, there may be a number of additional *.cfg files.

Features of Bingo through version 2.11a
---------------------------------------
   - high speed execution, with particularly fast searches,
     screen handling, and file I/O
   - virtual memory for file storage; up to 240 Megabytes of file
     storage possible                        
   - more friendly execution under OS/2, Windows, and other DOS
     multitasking systems
   - full color support
   - programmable integrated mouse support
   - support of VGA, EGA, & MCGA extended text modes
   - superb macro capability
   - large suite of utility functions: entab; detab; command
     repeat; shift; etc.
   - custom define your own keyboard setup
   - complete menu system supporting most Bingo functions
   - multiple files, multiple windows: view different sections of
     the same file, or different files at the same time
   - execute DOS commands, including command-line compilers
     within only ~3k of overhead
   - regular expression search and replace
   - completely configurable from within itself
   - use placemarks to mark positions in files
   - user definable help file
   - extensive block operation support, include point, line and
     column marking, and two different sets of block operations
   - one default block buffer, plus 26 additional named buffers
   - wordwrap, paragraph formatting, and autoindent support
     included for text processing work
   - C Mode supports programming in the C programming language
   - User-defined delimiter and indentation matching
   - directory list picker
   - execute *any* Bingo function from within Bingo whether it
     has been assigned to a key or not using a 'function picker'
   - interrupt Bingo at any point and exit, and when you restart
     Bingo it will pick up exactly where you left off
   - print files & blocks through the serial port, parallel port,
     or to a file, with or without line numbers
   - set printing left margin, top margin, and lines per page
   - automatic processing of errors generated by the Borland and
     Microsoft developmental tools.
   - undelete stack of deleted items
   - execute any command or macro "globally" over all files in
     the ring
   - profile files allow file extension specific settings.

Features New and Missing in Bingo version 2.10
----------------------------------------------
     So many new things to talk about!  Version 2.10 is
essentially a complete rewrite of Bingo; less than half of the
code made it to 2.10 unchanged.  This necessitated a lengthy
beta-test period, and accounts for the delay in releasing this
version.
     The major change in version 2.10 is the (welcome)
implementation of a virtual memory management scheme.  Properly
set up, with the available disk space, Bingo is now capable of
handling up to 240 Megabytes (!) of file storage.  That is a lot
of lines of code.  As a side benefit, file IO is *much* faster,
and memory usage is more efficient.  I think you'll like it.
     Several functions were dropped in release 2.10.  They are:

key_set_impress:    This is now an unnecessary function, as key
     definitions have been offloaded into the 'keyset.cfg' file.
     Thus, 'key_set_save' can give you the same functionality.

del_word: This was replaced by two functions, 'del_word_rt' &
     'del_word_lt'.  'Nuff said.

conf_null:     This is now completely unnecessary, as the only
     control character Bingo dislikes is the EOF marker,
     control-Z.  Nulls it handles with complete aplomb.

conf_ctrl_display:  This was dropped because we decided it was
     not being used by our users much, based on conversations
     with them.  Part of its functionality has been provided by
     the 'conf_eol_display' function.

conf_curs:     This was dropped, because it did not work reliably
     on most machines.  Look for the solid cursor, and better
     cursor control in general to return in a future version.

conf_tabexpand:     This was dropped because it was too slow, and
     fairly unnecessary.  Simply use the 'detab' function once
     from the editing screen; this is a one-time deal anyway.
     Plus, though we were never able to verify it, there is a
     strong suspicion that the automatic tab expanding caused
     machines to crash in some instances.

     The following is a summary of the new features available in
version 2.10.  Note that, since we had to re-implement so mych of
the editor, there were not a lot of big, new, shiny functions
added.  Next time.

-    now you can redefine basic keystrokes to be any other
     printable character.  For example the line
          a         ƒ
     in a .CFG file would redefine the 'a' key to be 'ƒ'.  This
     translation will occur when you are entering text directly
     into the buffer, and during string-entry for search and
     replace.  This should please my international customers.
-    new command line switch added which will let you run a macro
     file automatically upon startup.
      "be <fname1> <fname2> -x[macro_filename1] -x[macro_filename2] ..."
     will run [macro_filename1] in <fname1>, and [macro_filename2]
     in <fname1>
-    a new configuration option 'conf_exit_to_pick' allows you to
     tell Bingo to pop up the edit file box, and the picker if
     desired, when the last file in the ring is exited.  The
     exception to this is the 'abort_all' commmand, which simply
     exits Bingo as usual.
-    'center_text' function added.  centers the text on the
     current line, or the marked lines, relative to the right
     margin active for the current bufer.
-    whenever you are in a string-entry box, pressing the Tab key
     will insert the current contents of the first line of the
     current paste buffer.  Very useful.
-    'mark_last_found' will unmark the current buffer, then mark
     the last text found by the search algorithm, providing
          1) the last search did not fail
          2) you are located on the found position
     Also very useful when writing macros.
-    'display_file' function added.  Displays the named file in a
     box, similar to the popup help box.
-    word wrap mode altered so it triggers on the typing of a
     *non* space character rather than a space character.
-    point marking has been altered.  The new method excludes the
     second endpoint from the region.  This will make people from
     other editors more at home.
-    fixed the 'reform_para' command so that two spaces were
     preserved after '.' characters (end of sentences) as this is
     the accepted standard.
-    wild card loading is here.  If you give Bingo a wildcard,
     when the pickdir box pops up, in addition to a 'New File
     Spec' option, there is a 'Load All Matching' option.
-    support for relative pathnames via '..' & '.' now implemented.
-    Alt-A in a string entry box leads to the ASCII table, to
     facilitate entry of control characters, and other wierdness.
-    ALL of the word functions have been rewritten to be more
     consistent.  In particular, you can move word left or right,
     and delte left or right by word, by using 'del_word_rt' &
     'del_word_rt'.  Using the 'conf_word' function you may
     decide just what your idea of a word is.
-    'scroll_up' & 'scroll_down' functions altered to keep the
     cursor on a constant line of text.
-    'clean_file' & 'clean_all' will reset the modify flag of a
     file, or all the files, respectively.
-    'pick_file' remembers the last 15 files you edited, in
     reverse order, even across editing sessions.
     'conf_name_save' governs both whether the filename saving
     takes place, and where the file "recall.be" is placed.
-    'mouse_scroll', the only new mouse functions, allows you to
     click and drag to move and mark.
-    'conf_delims' lets you define you own delimiters for Bingo
     to balance, besides [{()}].
-    'repeat_last' will repeat the last executed function once.
     A nice shortcut.
-    'conf_scr_save' allows you to tell Bingo to save and then restore
     the DOS screen.  Costs some memory, but enough of you asked
     for it, so here it is.
-    'conf_eol_display' lets you designate the decimal value of
     the ASCII character Bingo will use to display the end of the
     line.  By default this is the space characters (ASCII 32).

Version 2.10a
-------------
-    Fixed a bug in how Bingo handled the end of the file.  This
was a fairly serious bug, and is the prime reason version 2.10a
was released so soon on the heels of version 2.10a.  This affected
any number of different functions attempted near the end of the
buffer.
-    Added 'conf_prn_eol' function, to allow you to control
whether Bingo's printing subsystem terminates lines with CR/LF
pairs, or just LFs.
-    Added 'conf_prn_lineno' so line numbering is a configuration
option rather than a question.
-    Added 'conf_prn_header' which if turned on will tell bingo
to print a 2 line header at the top of each page, with the time,
date, filename, and page number.  Very handy if you work with a
laser printer.
-    Added 'leap_forward' function.  Very simple.  It asks for a
single keypress, then jumps forward to the next occurance of that
character, case-insensitive.  If you hit a function key, or
return, the function will leap using the previous target.  The
'leap_backward' function works exactly the same, except toward
the beginning of the file.
-    a small, but *very* vocal group of users convinced to make
Bingo's tendency to turn the filename 'test' into 'test.*'.  So
what we did was get rid of this design altogether.  "Arrrgghhhh!"
say the majority of my users.  Worry not; I am not any less lazy
than I used to be.  Using the C)onfig, F)ile IO, e(X)tensions
choice in the menu ('conf_def_ext' function), you can achieve the
exact same functionality by defining the extensions '.*' as your
last extension.  This is the way Bingo comes configured.
-    Another small problem was with KEYCFG.EXE.  When you used
the defaults, the keyset filename was KEYSET.CFG, not KEYCFG.SET.
This no doubt caused problems for which I apologize.
-    PAGESIZE now allows you more complete control over the memory
allocation strategy Bingo uses.  The syntax is now:
     pagesize X Y <filename> where X is the number of 'buckets'
to allocate (in kilobytes), Y is the size of each bucket page (in
kilobytes), and <filename> is the executable to modify, by
default BE.EXE.  For example, a bucket size of 4K and a pagesize
of 2K gives a theoretical memory limit of 8 Megabytes.

Version 2.10b
-------------
-    Fixed a minor display problem with the 'query_quote'
function not updating the display.
-    When swapped out with the virtual memory enabled, Bingo was
not always clearing the swapfile out of the way when swapping,
thus chewing up disk space.  Fixed.
-    Fixed the printer subsystem, so that it will dependably end
pages when you are using a bottom margin.
-    Fixed a bug in the search routine.  Basically, Bingo wouln't
search past the 32,766th line of a file (used an int where I
should have used a long, natch).
-    Fixed a bug in the info command, where it would on certain
machines return truly large inaccurate numbers for the amount of
RAM free when there was in fact no local RAM available.
-    from a string entry box, in addition to accessing the most
recently entered strings via the Up_Arrow key, you can now access
the file pick list via the Page_Up key.  Very useful for the
terminally lazy among us.
-    altered the 'scroll_up' and 'scroll_down' commands to
*finally* work the way they were intended -- the screen moves but
the cursor is fixed.

Version 2.10c
-------------
-    fixed a bug in the macro handling, where defining a key
could undefine the most recently on-the-fly defined key.  This
one appears to have been present since version 1.1b! May be the
oldest bug I have ever squashed.
-    added 'scroll_left' and 'scroll_right' commands, which work
pretty much like 'scroll_up' and 'scroll_down' work, only
horizontally.
-    added 'conf_automark' option which allows the marking to
follow you about without you explicitly saying so.
-    fixed bug with snap_to_mouse_xy not allowing you to the last
line.
-    fixed a bug with del_line not updating the display when the
last_line is deleted.
-    fixed an enormously irritating problem with Bingo not
recognizing all extended keyboard combinations, such as
Alt-Escape.
-    added a box drawing mode, allowing the use of single and
double line drawing.
-    added 'begin_of_text' function.  This moves you to the first
non-space character on the current line.  If the line is blank,
you are moved to the first column.
-    fixed a bug in KEYCFG; it was not happy when you gave it a
key with no definition.  Nothing terrible happened, you simply
got unpredictable results when that key was pressed.
-  fixed a bug in the next_error/prev_error code; it would not
return you to the proper file if it was executed upon startup,
say as in the compile macro.  Fixed.

Version 2.10d
-------------
-  fixed a bug with snow checking mode.
-  Fixed a bug in how Bingo handled files with an eof marker as
the last character of the last line.
-  Added timed backups.  This allows you to specify how often, in
terms of operations, to save a backup of a file.  To elaborate on
an operation, anything that changes the file is 1 operation.
After a predetermined number of operations, the file is saved as
   backXXXX.bak
where XXXX is the buffer 4 digit id number.  This id number is
unique over an editing session, and is displayed as part of the
info screen.  The backup files are identical to the files
themselves, except that the first line contains the original name
of the file and the time of the backup.
-  Added 'backup_file' and 'backup_all' functions to force
automatic backups.  These function only effect those files for
which automatic backups are turned on.
-  Fixed a number of small bugs in key handling.  Bingo now does
a better job of identifying undefined keys.

Version 2.10e
-------------
-  Fixed a small lack of functionality in KEYCFG. It will now
parse each identifier as a function, then as a key.  Previously
it did this, but it was not complete; when it parsed keys, only
named keys (alt_escape, etc.) were checked, function keys and
control keys were not recognized.
-  Fixed a bug with 'cut_append' and 'copy_append'.  If the
buffer you were appending to was empty, the text would be
cut/copied, but the data was not placed into the buffer.
-  Changed the error-processing algorithm slightly, so it does
not see .com and .exe files as valid filenames for errors to
occur in.
-  Added 'cmd_line' function.  This allows you to enter a Bingo
function (or enough of it to uniquely identify it) and have bingo
execute.  This is similar to the 'pick_exec' function, except
that execution takes place immediately.  Further, you can type in
string parameters on the same line, i.e.:
   swap_exec dir
would 'swap_execute' the dir command.
-  Fixed a bug in the print-with-headers routine where headers
were always sent to the parallel port, regardless of the setting.
-  Seem to have squashed a bug we couldn't reproduce.  The timed
backups were, for no know reason, occasionally munging files.  It
no longer happens, but I am not sure why it did to begin with.
If anyone could reliably reproduce this with 2.10d, let me know.
-  Altered the word wrap algorithm slightly, to prevent spare
spaces from creeping in when Bingo wraps at the end of a
sentence.
-  Fixed an inconsistency in the regular expression search
algorithm with respect to the $ and ^ special characters and the
ignore case identifier.
-  Changed the single backup method a bit, so that it creates the
backup by filling the extension with the specified character.
I.e., if you specify to use the '$' character, 'main.c' would
become 'main.c$$', while 'main.cp' would become 'main.cp$'.
Remember, Bingo only creates the backup if you save the file over
its original.
-  Altered how deleted portions of text (word, line, eol, bol)
are saved on the unkill stack.  EOL chars are now properly
carried along on the stack, and line deletions will be unkilled
as full lines.
-  Added a new function 'emacs_yank' which melds the unkill stack
and the paste buffer together in the following manner.  If the
most recent block operation/deletion was a block operation,
'emacs_yank' works exactly like 'paste', pushing the paste buffer
contents into the text.  If the most recent operation was a
deletion (word,line,eol,bol), 'emacs_yank' works like the
'paste_kill' function, pulling text from the undo stack without
disturbing its contents.  This allows you to use the deletion
commands to manipulate text in concert with the paste buffer
operations.

Version 2.11
------------
-  changed the settings from being embedded in the executable to
being saved in a file called BINGO.INI.  Bingo looks first in the
local directory, then in Bingo's home directory.
-  fixed a bug which could prevent Bingo from editing more than
50 files at a time.
-  changed the macro recording paradigm so that when you are
recording a function which executes another key (such as global
or repeat), Bingo records what key to execute but not the result
of the key.
-  fixed a problem with the file backup not backing up files with
full extensions.
-  fixed a problem with printing to a file not allowing you to
append to an existing file.  It seems fseek works not as
advertised.
-  fixed a bug in the single backup code, where Bingo would not
backup a file with a 3 letter extension.
-  fixed a problem when 'unkill to stack' option was selected
with the unkill stack becoming corrupted.
-  fixed a problem with C mode not working quite properly
-  added a number of small functions to aid in using Bingo in
Overwrite mode:

   conf_carriage: This function toggles on and off whether or not
      the 'carraige' function splits lines.

   conf_delete_join: This function toggles on and off whether or
      not deleting at the end of a line brings the next line up.

   new_line: Inserts a new line before the current line, without
      moving the cursor.

-  changed the file saving methodology a bit to be a little more
robust.  'conf_safe_save' will toggle on and off the alternate
method.  If turned on, 'safe' saves will first save the new file
to a temporary file, *then* delete the old file, the rename the
new file.  Be careful when you turn this on when disk space is
running low -- for a bit you will have 2 copies of the file
there.
-  fixed a low-level bug in the repositioning algorithm.  this
could cause odd pointer behavior in certain circumstances.
-  added functionality to the 'jump' command, so that entries cn
take the form of 
   [+-]line,[+-]column
allowing you to jump by columns as well as lines, or any
combination of both.
-  Made a number of low level changes in how Bingo interacts with
the keyboard so that it is friendlier to Multitasking Systems
such as Windows and OS/2.
-  Added the KEYINFO program.  This is an simple program whose
mission is to extract key definition information from a
single_key_save file or a keyset file.  Usage is as follows:

   Info on single_key_save macro file
      KEYINFO -s [single_key_save macro filename]
   Info on keystroke in .SET table
      KEYINFO -t [.SET table] [keyname]
   Info on all keys in .SET table
      KEYINFO -a [.SET table]

KEYINFO will print out a key definition, per key in the case of the -a
option.  This definition will deiscrimminate between functions,
keystrokes, and text.  This is intended as an aid to debugging
macros and key definitions.

Version 2.11a
-------------
-  fixed a few minor bugs, one which had to do with automatic
stripping of trailing spaces.
-  changed be.com so that it returns an errorcode of zero (no
error)

Registering
-----------
   Starting with version 2.10, there is a two-tiered registration
method.  You can register for the current version, one time only,
for $40.00.  This is called Single Version registering.  This
type of registration entitles you to use the current version of
Bingo, and to support for that version.
   You can also opt for the Lifetime registration, for $75.00.
This entitles you to subsequent revisions for a $5 shipping fee,
and support for as long as the product is available.
   People who registered prior to version 2.10 are automatically
upgraded to Lifetime registrations.
   When you register your copy of Bingo, you will get an
executable with your name on the opening screen, so you can show
everyone what an honest person you are.

Comments
--------
   Whether you are an avid user or an avid hater of Bingo, PLEASE
do not hesitate to contact me.  It is of tremendous use to me to
get your feedback on Bingo.  Seriously!

Getting the Latest Version
--------------------------
   There are two sure ways to aquire the latest version of Bingo.
One is by calling the Computer Connections BBS in Washington DC.
This is a very fine, very large board which is excellently
managed.  It will always have the latest release, and E-Mail left
for me their will get responded to.  The phone number is:
   (202) 547-2008

   The other way is to look for it on Compuserve, usually as
BINGO2.ZIP or BExxxx.zip in the IBMNET area.

Contacting the Author:
----------------------
   Feel free to contact me any time about any problems, suggestions,
or just plain discussions concerning Bingo, regardless of whether
you are registered.  Without users, any product, now matter how
good, is so much raw data sitting on a disk somewhere.  Either
write or call to this address:

                  Christopher R. S. Schanck
                  PO Box 279
                  Hanover MD 21076
                  (410) 799-7052

if that number should give you any trouble, use:

                  (215) 691-1070
                  9am to 6pm EST

Compuserve
----------
   Contact me at 70541,3614.  This is the most reliable way to
contact me, as I check my email regularly.

Hints
-----
     I would like to compile a list of hints to include with Bingo.
Most users have discovered sharp little tricks about configuring
Bingo, and about using the more complex functions.  So send me
your ideas for this file, and it may get included in the next
release.  This includes any nifty macros you come across.

PsL Shareware Registration
--------------------------
     You can order directly from me at the above address or from
Public (software) Library with your MC, Visa, AmEx or Discover
card by calling 800-2424-PsL or 713-524-6394 or by FAX to
713-524-6398 or by CompuServe to 71355,470 or by mail to PsL, PO
Box 35705, Houston, Texas 77235-5705.  Bingo's order # is 10399.
Please use this number when ordering if possible.  These numbers
are for ordering only.  For information about dealer pricing,
volume discounts, site licensing, shipping of product, returns,
latest version number or other technical information, contact me
at

                  Christopher R. S. Schanck
                  PO Box 279
                  Hanover MD 21076     
                  (410) 799-7052


