Here is a list of the new features for Liberty BASIC v3.02. Bug fixes are
listed at the bottom. Click to download!|
- Included new help file
- Included new version of Freeform GUI editor
- Improved BASIC program execution speed up to 10%.
- Added an auto indenting feature to the Liberty BASIC source
editor. This can be turned on and off in the Preferences window.
- Changed to a two tiered registration system. Now users can buy
SILVER or GOLD licenses. A SILVER license has no size restriction on
the programs it will run, and a GOLD license also adds runtime engine
support to this. Existing Liberty BASIC v3.0x licenses still work
fine with v3.02 (they are equivalent to GOLD licenses).
- Added the ability to pass in a number to the date$() function and
it returns a string representing the date as "mm/dd/yyyy".
- Added a new form to the word$() function. You can now specify
the delimiter string so optionally you can read comma delimited or
- Added the ability to get the number of days since Jan 1, 1901
using the date$() function.
- Changed <, <=, >, >= string operators so that they they will now
compare strings in a case sensitive way like most other programming
- Added a txcount(#handle) function to get a count of bytes in a
serial communications transmit queue.
- Added support for the double type (double precision floating
point) in structs.
- Added a randomize command so that you can seed the random
number generator in a predictable way.
- Added a locate command so that the cursor can be positioned
anywhere within the mainwindow.
- Changed the fs part of a window style so that it sizes the window
normally (using WindowWidth and WindowHeight) and then maximizes
the window right after opening it.
- Adds support for reloading the current file being edited if the file's
date and time have been updated. This happens when the editor
has been activated. This option can be turned on or off in the
preferences dialog. The default is off.
- Changed the debugger so that it uses the equal sign instead of a dash
to separate a variable's name from its value.
- Improved support for running over networks including the general
bolstering of support for files and paths making use of network
resource locators (ie. \\netres\name). Liberty BASIC should now be
able to open and save files using resource locators in their path
names, and it should also properly treat file specifications having
resource locators in their path specifications. Commands such as the
following are supported: open, name, rmdir(), mkdir(), kill, files, loadbmp,
bmpsave, bmpbutton, filedialog, playwave, run
Fixes for Liberty BASIC v3.02!
- Fixed a compiler bug when using a PRINT statement with only a
semicolon like so: print ;
- Fixed a bug in the WAIT command which was messing around with
the position of the flashing cursor in the main window, causing
printed lines to run together.
- Fixed a bug in the USING() function where it was not rounding
numbers when the template was for an integer.
- Fixed. FOR/NEXT and WHILE/WEND loops were not managing their
context properly in recursive calls.
- The syntax colorer was not registering the token TO as a reserved
- Fixed the compile error reporting for wrong number of array
parameters and for array parameter type mismatch. It was not
correctly reporting the error when compiling for debug, and it
was failing to highlight the errant line of code. Additionally,
the error was different when running than for debugging.
- Fixed the "Float underflow exception". Now when the result of a
calculation is too small it will in effect become zero.
- Bolstered syntax and type checking of the built-in functions.
This will reduce the incidence of compile errors that result in
a dump to error.log and also increase the consistency in the
error messages that appear at compile time.
- Fixed a bug where closing a program's mainwindow while the
program is waiting for keyboard input at an input$() function
would produce an index out of collection bounds error.
- Fixed a bug where while/wend loops having user functions as
part of the loop conditional would only execute those user
functions for the first iteration of the loop.
- Removed DO and LOOP from the list of commands because they aren't
commands. These tokens were being treated as though they were
Liberty BASIC commands, but this would only cause the compiler to
crash if you tried to use them.
- Strengthened the error checking for the following: calldll,
callfn, callsub, gettrim, kill, let, lprint, name, notice, open,
out, print, prompt, titlebar
- Make sure that the initial font gets properly added to the first
open segment when opening a graphics window or a graphicbox.
- Make sure that graphicboxes get painted white when their parent
window is opened.
- Eliminated a bug causing an endless loop on certain misformed
syntax for case statements.
- Fixed the text_fs_nsb style so that it doesn't crash when you try
to use it.
- Fixed a problem with the input$() function, which was echoing
keys pressed to the mainwindow when it should not.
- Fixed a bug where using the restart item in the mainwindow
would cause the mainwindow would become deactivated.
- Fixed a problem with the highlighting of source code when a compile
error happens during "Make TKN file". It would always highlight the
line after the error.
- Modified the syntax colorer so that it colors reserved words blue
instead of coloring commands blue.
- Extends the error line selection in the source pane so that it
spans over logical lines.
- Fixed the execute feature in the debugger so that it produces a
proper error message when you try to execute code that calls a sub
or a function.
- Fixed the debugger so that it truncates variable items that would
display more than 200 characters in the debugger. This is to
prevent protection violations and or crashes that may occur with some
video drivers when they attempt to display very long strings on the
- Fixed a bug in the chr$() function which caused it to choke on
floating point values.
- Fixed a bug that permitted IF/THEN statements to have a colon
after the THEN.