Liberty BASIC v1.2 for Windows will be released in Feb 1995!  Look
for the file LB12W.ZIP on bulletin boards everywhere!

Here are some new v1.2 features and fixes of Liberty BASIC that been
added since Liberty BASIC v1.1!

1) A new editor is used, offering one editing window pane instead
of the four in the previous versions.  This was changed mostly
because of customer feedback that they didn't like the old editor.

2) A visual design tool called FreeForm is included which lets you
design your windows and controls graphically, and it will write the
Liberty BASIC code for you!  The program is written in Liberty BASIC
and the code is included, so you can see how the author writes full
sized apps in Liberty BASIC, and also so that you can modify it to
suit your needs.

3) Now you can run *.TKN files straight from the Run menu (formerly
call the Source menu)!

4) Programs will run up to 30% faster in processing intensive tasks.

5) Programs are more memory efficient.  This also improves speed,
especially on tight memory systems.

6) LINE INPUT has been added for sequential file input.

7) A bug was fixed that prevented the use of the name File as a
pull down menu name.  Files was often used as a substitute.

8) When opening a window with textbox controls, the focus is now
automatically given to the first textbox.  Before it was necessary
to Tab to the first item.

9) To give any control inside a window the focus, just print setfocus
to the control, like so:

    print #main.name, "setfocus"

    Note: some controls expect !setfocus instead of setfocus

10) Buttons can now be sized as desired just by tacking on a width and
height onto the old button command syntax.  For example.

    button #1, "Red", [colorRed], UL, 5, 5, 30, 20

  This produces a button labeled Red, 30 pixels wide and 20 high.
  Previous Liberty BASICs only permitted autosizing of buttons.

11) Window sizing and placement have been improved.  The default size
is different (and using values between 0 and 1 for WindowWidth and
WindowHeight doesn't work anymore).  Windows will position themselves
depending on mouse position when they open unless UpperLeftX and
UpperLeftY are deliberately modified.

12) The Go To Branch Label window is now much bigger and displays more
items, making program navigation easier.

13) Kill Basic Programs now kills ALL types, those started from Run,
from Debug, and also *.TKN files.

14) The Platform$ system variable permits a running program to know
which version of Liberty BASIC is running.  It will either be
"Windows" or "OS/2".  The Version$ system variable now reads "1.2"

15) A Drives$ system variable has been added, which returns a string
contain all available drive letters like so:

    print Drives$

  might produce: "a: b: c: "

    Hint: Use the word$() function to get each drive letter out.

16) A bug was fixed that would occur sometimes when trying to close
an application that uses windows with controls.  The error would
read like this:

    Handle #handle.xxxx not available

    Where #handle.xxxx would be any valid handle pointing to a
    window control

17) Improved printing support in graphics windows.  Now the print
command actually sends a much more accurately scaled image to the
Print Manager instead of a 1:1 pixel to pixel copy (which resulted
in itty-bitty printouts).

  For example:

    print #graphicsWindow, "flush ; print"

    Note: It is important to send flush, and then print

18) Some debug code was accidentally left in.  This code would cause
something like an invoice or packing slip to appear in front of
anything you LPRINTed.  This code has been removed.

19) The cleaning up of bitmaps (when loading bmp files with LOADBMP or
when using the BMPBUTTON command) has been greatly improved, helping
so solve a diminishing resources problem.

20) The spreadsheet window style now uses a fixed width font to
remedy the broken looking text produced when labels stretch across
cells.

21) A compiler design flaw was ELIMINATED.  The compiler would try
to bounds check array references at compile-time.  This was ill
conceived.  If you had code similar to the examples below,
you would get an out of bounds error during compile.

    print stuff(index - 1)
 or
    a$(r - 1) = a$(r)

Because the variable index was not defined (was zero) at compile
time, subtracting 1 would result in -1.  Since the compiler would
check the validity of this result at compile time, and error would
be reported.  The second example is similar.

22) The spreadsheet now supports cell selection via the mouse (as
opposed to moving the cell selector soley with the arrow keys).
