Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[ANN] Liberty BASIC Booster

544 views
Skip to first unread message

ne...@rtrussell.co.uk

unread,
Sep 11, 2011, 5:38:59 AM9/11/11
to
Liberty BASIC Booster, a powerful new tool for Liberty BASIC
programmers, is now available in Beta Test form. With LBB you can:

* Speed up a Liberty BASIC program by up to ten times.
* Compile a Liberty BASIC program to a compact, standalone executable.
* Overcome many of Liberty BASIC's bugs and limitations.

Liberty BASIC Booster is Freeware; it can be downloaded from:

http://tech.groups.yahoo.com/group/lbb/files/LBB.exe

(you will need to join the group first).

Richard.
http://www.rtrussell.co.uk/

aury

unread,
Sep 12, 2011, 1:18:31 PM9/12/11
to
On Sep 11, 11:38 am, "n...@rtrussell.co.uk" <n...@rtrussell.co.uk>
wrote:
I don't know what you see in Liberty Basic.
By the way you have BBC- why you boost BBC?

H-Man

unread,
Sep 12, 2011, 1:40:24 PM9/12/11
to
As I understand it, it is a great way to leverage existing or new LB code
to BBC. As BBC will compile to native x86 executable code, it will result
in a much faster and also a self contained executable. As Richard champions
his BBC Basic product, this is a great way to get Liberty Basic programmers
to migrate to what could arguably be called a more powerful programming
language.

--
HK

ne...@rtrussell.co.uk

unread,
Sep 12, 2011, 4:45:12 PM9/12/11
to
On Sep 12, 6:40 pm, H-Man <S...@bites.fs> wrote:
> As BBC will compile to native x86 executable code,

If only! BBC BASIC is interpreted (and there are features of the
language which make it virtually impossible to compile) so the speed
isn't that much greater than when running interactively under the IDE.

> As Richard champions his BBC Basic product, this is a great way to get
> Liberty Basic programmers to migrate to what could arguably be called a
> more powerful programming language.

Honestly, it's not. If that had been the motivation I would have made
a LB to BBC translator, which then required the user to obtain BBC
BASIC in order to run the program. In contrast, LBB is completely
self-contained; it even creates stand-alone executables without it
even being apparent that BBC BASIC is at work 'under the hood'.

LBB is a perfectly genuine attempt to improve the lot of Liberty BASIC
programmers. Yes, it acts as a showcase for what BBC BASIC can
achieve but it's not trying to 'convert' anybody. For more background
you can read my blog post:

http://bbcbasic.blogspot.com/

Richard.
http://www.rtrussell.co.uk/

H-Man

unread,
Sep 12, 2011, 6:02:42 PM9/12/11
to
Okay, thanks Richard. I completely misunderstood what was indicated on the
website.
From your website
"The full version allows you to create a compact (typically less than 100K)
stand-alone executable (.EXE) file from your BASIC program, which will run
without BBC BASIC having to be installed and without the need for any
special DLLs. You can distribute such executables freely without any
royalty for BBC BASIC being due. "

I assumed, therefore that it was not runtime dependent. Looking into this
further everything i see does say it is interpreted so I'm assuning the
runtime is part of the self contained .exe.

From your Blog I found;
"This is where we complete the circle. By combining the translation
capabilities of LB2BBC with the emulation capabilities of LBLIB it becomes
possible to run most Liberty BASIC programs, without actually needing
Liberty BASIC itself! In consultation with some leading Liberty BASIC
advocates it became clear that there might be a market for this, not as as
translator to BBC BASIC but as a 'Liberty BASIC Booster'. To the user it
would appear as a way to speed up LB programs (up to ten times in some
cases) and to create compact single-file executables, without it being
obviously apparant that BBC BASIC was at work 'under the hood'."

So then, is this a better LB compiler, and is that it's purpose? Does the
LB code run under BBC then? Very cool, but without knowing LB and the
limitations you speak of, I'm not sure I get it.

--
HK

H-Man

unread,
Sep 12, 2011, 6:04:35 PM9/12/11
to
On Mon, 12 Sep 2011 13:45:12 -0700 (PDT), ne...@rtrussell.co.uk wrote:

Okay, thanks Richard. I completely misunderstood what was indicated on the

H-Man

unread,
Sep 12, 2011, 6:08:44 PM9/12/11
to
On Mon, 12 Sep 2011 13:45:12 -0700 (PDT), ne...@rtrussell.co.uk wrote:

Okay, thanks Richard. I completely misunderstood what was indicated on the

ne...@rtrussell.co.uk

unread,
Sep 13, 2011, 5:42:22 AM9/13/11
to
On Sep 12, 11:02 pm, H-Man <S...@bites.fs> wrote:
> I assumed, therefore that it was not runtime dependent. Looking into this
> further everything i see does say it is interpreted so I'm assuning the
> runtime is part of the self contained .exe.

That's right. From the BB4W FAQ: "In traditional terms BBC BASIC is
an interpreted language; it has many features which are not compatible
with direct conversion to machine code (e.g. the EVAL function and the
assembler). BBC BASIC for Windows uses the term compile for the
process of creating a stand-alone executable file containing a
compressed form of your BASIC program plus a Run Time Engine to
execute it. Several modern 'compiled' languages (e.g. Java and
the .NET suite) use a similar technique".

> So then, is this a better LB compiler, and is that it's purpose?

It addresses a number of issues with Liberty BASIC. For example LB is
exceptionally slow (even for an interpreter), it generates huge multi-
file executables (a 'Hello world' program creates ten files totalling
2.8 Megabytes) and it has lots of bugs that have gone unfixed for
years.

> Does the LB code run under BBC then?

From the LBB docs: "When you issue the Make Executable command LBB
creates a single-file standalone executable containing the BBC BASIC
for Windows run-time engine, the LBLIB emulator and a tokenised/
compressed version of the translated BASIC program".

Richard.
http://www.rtrussell.co.uk/

H-Man

unread,
Sep 13, 2011, 10:18:58 AM9/13/11
to
Richard,

This is really interesting. Thanks for sharing, I appreciate your taking
time to explain this to me. When I have time I will try to spend some time
with it. Too busy right now.

--
HK

H-Man

unread,
Sep 13, 2011, 10:20:33 AM9/13/11
to
Sorry for the multiple posts, my usenet host was obviously having issues.

--
HK

Tony Toews

unread,
Sep 13, 2011, 8:03:08 PM9/13/11
to
On Tue, 13 Sep 2011 08:20:33 -0600, H-Man <Sp...@bites.fs> wrote:

>Sorry for the multiple posts, my usenet host was obviously having issues.

Well, you're not using Outlook Express so you can't blame it. <smile>

Tony
--
Tony Toews, Microsoft Access MVP
Tony's Main MS Access pages - http://www.granite.ab.ca/accsmstr.htm
Tony's Microsoft Access Blog - http://msmvps.com/blogs/access/
For a convenient utility to keep your users FEs and other files
updated see http://www.autofeupdater.com/

H-Man

unread,
Sep 14, 2011, 12:25:45 PM9/14/11
to
On Tue, 13 Sep 2011 18:03:08 -0600, Tony Toews wrote:

> On Tue, 13 Sep 2011 08:20:33 -0600, H-Man <Sp...@bites.fs> wrote:
>
>>Sorry for the multiple posts, my usenet host was obviously having issues.
>
> Well, you're not using Outlook Express so you can't blame it. <smile>
>
> Tony

LOL,
No I kept getting a failed send response from the host, but it clearly did
get through. It's happened to me before with Eternal September.

--
HK

Gordon Rahman

unread,
Sep 20, 2011, 3:57:24 PM9/20/11
to


Hmmm.... I wonder,
isn't it something like a keygenerator does?

To make an .exe file with LB you need to buy a license.
That's the only $60,- that Carl earns in his lifetime from
you.

With LBB there is no need for a LB license.

Gordon.



<ne...@rtrussell.co.uk> schreef in bericht
news:781e639f-6931-4910...@z18g2000yqb.googlegroups.com...

ne...@rtrussell.co.uk

unread,
Sep 20, 2011, 5:19:48 PM9/20/11
to
On Sep 20, 8:57 pm, "Gordon Rahman" <grah...@planet.nl> wrote:
> To make an .exe file with LB you need to buy a license.
> That's the only $60,- that Carl earns in his lifetime from you.

In my experience, the main reason for buying a full LB licence is to
eliminate the annoying and increasingly time-consuming 'nag screen'
that you get at the start. Many users seem not to care whether they
can make an EXE or not, so there's little incentive to get the full
version for that reason. But once the nag screen forces you to wait
several minutes before you can even start using LB, it becomes
extremely frustrating.

> With LBB there is no need for a LB license.

This is what it says in the LBB documentation: "LB Booster is
Freeware; you are strongly encouraged to purchase the full version of
Liberty Basic on which to develop, test and debug your programs prior
to 'boosting' them". I was persuaded not to develop LBB as a full-
blown IDE, in competition with LB, but to promote its use as an 'add
on' to LB. I wasn't obliged to do this; I did it solely as a gesture
to maintain good relations with the LB community.

Many programming languages have alternative implementations available
from different vendors, think Fortran or C or Pascal or BBC BASIC or
Java... so why should Liberty BASIC be any different? Most vendors
have to survive in a competitive environment in which to maintain
their market share they must keep their product up-to-date, fix bugs
efficiently and provide excellent support to their users. Having a
monopoly can lead to complacency.

Richard.
http://www.rtrussell.co.uk/

Gordon Rahman

unread,
Sep 20, 2011, 6:12:04 PM9/20/11
to
Ok sorry,..... didn't read the LBB doc good enough.
But then ..... Just BASIC is the free version of Liberty BASIC,
and that version (JB) comes with .exe building capacity, ...so why not
a JBB in stead of a LBB?

I agree LB has a monopoly position.
LB is shareware.

Gordon.


<ne...@rtrussell.co.uk> schreef in bericht
news:5cc50c68-98d7-421b...@dq7g2000vbb.googlegroups.com...

aury

unread,
Sep 22, 2011, 3:40:51 AM9/22/11
to
On Sep 21, 12:12 am, "Gordon Rahman" <grah...@planet.nl> wrote:
> Ok sorry,..... didn't read the LBB doc good enough.
> But then ..... Just BASIC is the free version of Liberty BASIC,
> and that version (JB) comes with .exe building capacity, ...so why not
> a JBB in stead of a LBB?
>
> I agree LB has a monopoly position.
> LB is shareware.
>
> Gordon.
>
> <n...@rtrussell.co.uk> schreef in berichtnews:5cc50c68-98d7-421b...@dq7g2000vbb.googlegroups.com...
Im not sure what is this all about but it is little bit weird.
Why author of LB not create booster and speed up LB ?
if he is such a great programer- sounds logical.
On the other side it looks like some agrement between LB and BBC
probably because LB is much popular then BBC -for sure .

ne...@rtrussell.co.uk

unread,
Sep 24, 2011, 7:33:26 AM9/24/11
to
I've updated LB Booster to version 0.93; you can download the new
version from the usual place:

http://tech.groups.yahoo.com/group/lbb/files/LBB.exe

Changes in this version are as follows:

1. VAL now accepts lowercase 'e' in scientific-notation numbers.

2. ADDSPRITE first removes an existing sprite of the same name, if
any.

3. FILES redimensions the array if it has fewer than four columns.

4. PRINT TAB now works like LB if the specified column has already
been passed.

5. The SELECT text command can now position the cursor/caret beyond
the current
end of the line.

6. WINDOW_POPUP and DIALOG_POPUP window heights now match LB's.

7. LBB is no longer sometimes confused by leading or trailing spaces.

I believe this fixes all avoidable incompatibilities reported in
version 0.92

Richard.

ne...@rtrussell.co.uk

unread,
Oct 1, 2011, 6:07:07 AM10/1/11
to
I've updated LB Booster to version 0.94; you can download the new
version from the usual place:

http://tech.groups.yahoo.com/group/lbb/files/LBB.exe

Changes in this version are as follows:

1. FILES accepts a full path/filename as the second parameter.

2. The Tab key works in TEXTEDITOR controls and TEXT windows.

3. Keyboard navigation of controls in a DIALOG window is improved.

4. Compiled EXEs use the 'LBB' icon rather than the 'BBC' icon!

5. LBB now uses DIBs rather then DDBs, hopefully banishing the pesky
"Couldn't create bitmap" error!

Richard.

ne...@rtrussell.co.uk

unread,
Oct 8, 2011, 4:41:18 AM10/8/11
to
I've updated LB Booster to version 0.96; you can download the new

version from the usual place:

http://tech.groups.yahoo.com/group/lbb/files/LBB.exe

Changes in this version are as follows:

1. FILES creates the array if it doesn't exist (LB apparently does
this, even though the docs say the array must be created first).

2. The CONTENTS command initially resets the file pointer to zero,
ensuring the entire file is loaded.

3. Fixed #g "\" outputting a spurious space character.

4. Compiled EXEs slightly modified in an attempt to reduce the
likelihood of triggering a 'false positive' virus alert.

5. New 'Emulate Slicing' option to accurately emulate LEFT$, MID$ and
RIGHT$ when a negative length parameter is supplied.

Richard.

ne...@rtrussell.co.uk

unread,
Oct 15, 2011, 10:18:24 AM10/15/11
to
I've updated LB Booster to version 0.97; you can download the new
version from:

http://tech.groups.yahoo.com/group/lbb/files/LBB.exe

Changes in this version are as follows:

1. MouseX and MouseY now work correctly when the window has been
scrolled.

2. Sprites bigger than 255 x 255 pixels are now accepted.

3. SPRITEIMAGE doesn't report an error if the bitmap doesn't exist.

4. PROMPT now recognises a CHR$(13) in the prompt string.

5. REDIM can change a 1D array into a 2D array and vice-versa (LB
cannot do this, but the docs don't say so).

Richard.

ne...@rtrussell.co.uk

unread,
Oct 22, 2011, 10:42:39 AM10/22/11
to
I've updated LB Booster to version 1.00, which is the first 'public'
release. You can download the new version from here:

http://www.lbbooster.com/LBB.exe

Changes in this version are as follows:

1. Trailing commas in DATA statements are ignored.

2. The Help menu includes some new items.

Unless any major problems are reported I'll let this version 'bed
down' before issuing further updates.

Richard.

ne...@rtrussell.co.uk

unread,
Nov 5, 2011, 10:04:07 AM11/5/11
to
I've updated LB Booster to version 1.10:

http://www.lbbooster.com/LBB.exe

Changes in this version are as follows:

1. INP and OUT are supported!

2. Windows Constants are accepted in lowercase.

3. Binary output to a file or a serial port works properly.

4. The MOD operator works with non-integer values.

5. A few other minor bugs have been fixed.

6. Find and Replace implemented in the program editor.

Richard.

ne...@rtrussell.co.uk

unread,
Nov 12, 2011, 11:43:35 AM11/12/11
to
I've updated LB Booster to version 1.20:

http://www.lbbooster.com/LBB.exe

Changes in this version are as follows:

1. The icon of a compiled executable can be changed (see below).

2. The LOC(#handle) function is now implemented!

3. BBC BASIC statements can be included by prefixing with a !.

4. HEXDEC("") returns zero for compatibility with LB.

5. DATA statements can have comments.

6. A few minor bugs fixed.

* Note that, unlike LB, you can choose a multi-format icon with a
selection of different resolutions and bit-depths, including the large
PNG-encoded icons used by Vista and Windows 7.

Richard.

ne...@rtrussell.co.uk

unread,
Nov 19, 2011, 7:40:29 AM11/19/11
to
I've updated LB Booster to version 1.30:

http://www.lbbooster.com/LBB.exe

Changes in this version are as follows:

1. A filename specified on the command-line is accepted. You can now
'drop' a BASIC file onto the LBB icon, or associate LBB with a file
extension (but don't choose .LBB as that's used by LBB).

2. The MKDIR() and RMDIR() functions are fully implemented, and return
the expected codes on failure.

3. The 'pie' and 'piefilled' graphics commands have been modified to
be more compatible with LB. In particular the specified angles are
applied *before* the circle is converted to an ellipse.

4. Conditional expressions with the intermediate terms *not*
parenthesised should no longer (sometimes) confuse LBB.

5. FILEDIALOG should not provoke the reported 'tooltip' crash
sometimes seen with LB (although I was never able to reproduce that
here).

Richard.

ne...@rtrussell.co.uk

unread,
Dec 19, 2011, 9:00:34 AM12/19/11
to
I've updated LB Booster to version 1.40:

http://www.lbbooster.com/LBB.exe

Changes in this version are as follows:

1. If an error occurs at run-time the line number is (usually)
reported. This makes it much easier to locate the source of the error.

2. DECHEX$, INT and MOD accept an extended range of numbers.

3. The bitwise operators AND, OR and XOR return unsigned 32-bit
values.

4. TRIM$ is faster than before when there are a large number of
characters to strip.

5. StartupDir$ has a trailing backslash (unlike DefaultDir$).

6. Several other minor compatibility and stability improvements.

Richard.

Hector Alfaro

unread,
Dec 20, 2011, 2:33:00 PM12/20/11
to

Hello Richard

There is a bug on your qB2bbs and your lbb programs, both try to create
the same temp file.

qb2bcc can't start when lbb is running, but in the inverse works well,
lbb can start when qb2bcc is running.

Hector Alfaro

unread,
Dec 20, 2011, 4:19:14 PM12/20/11
to

Great job!!

If you add a form editor as the one included on liberty basic, is a
superior replacement for such language.
Even the form editor included on just basic runs great!!
Of course, must not to be legal distribute it,

Now I understand why they censored your work, is superior to the
original Liberty BASIC and is freeware, they dont want their loyal
customers know your program...


El 19/12/2011 09:30 a.m., ne...@rtrussell.co.uk escribió:

ne...@rtrussell.co.uk

unread,
Dec 24, 2011, 12:55:30 PM12/24/11
to
On Dec 20, 7:33 pm, Hector Alfaro <alfaro...@ceropublicidad.com>
wrote:
> qb2bcc can't start when lbb is running, but in the inverse works well,
> lbb can start when qb2bcc is running.

The reason is that QB2BBC was built with older libraries, so the file
it is trying to create conflicts with the newer version LBB has
already created. I have now rebuilt QB2BBC with the latest libraries;
you can download it from here:

http://www.rtrussell.co.uk/qb2bbc/QB2BBC.exe

If you update your copy you should be able to run both QB2BBC and LBB
together.

Richard.
http://www.rtrussell.co.uk/

ne...@rtrussell.co.uk

unread,
Jan 6, 2012, 5:31:07 PM1/6/12
to
I've updated LB Booster to version 1.50:

http://www.lbbooster.com/LBB.exe

Changes in this version are as follows:

1. READ (used within a FUNCTION or SUB) reads DATA which is within the
scope of that function.

2. ON ERROR correctly unwinds the stack, if the error occurred in a
more deeply nested FUNCTION or SUB.

3. Array names may include 'dots', as may variables passed to the
'contents', 'insert' and 'stringwidth?' commands.

4. A few other minor compatibility improvements have been made.

Note that a consequence of (2) is that RESUME can only be used in the
scope of the FUNCTION or SUB (if any) in which the error occurred.

Richard.

ne...@rtrussell.co.uk

unread,
Jan 14, 2012, 11:34:14 AM1/14/12
to
I've updated LB Booster to version 1.60:

http://www.lbbooster.com/LBB.exe

Changes in this version are as follows:

1. The LPRINT margins have been reinstated; they default to 10mm all
round. The graphics 'print' command now ignores the margins and always
uses the full printable area.

2. The 'locate' command now hopefully works the same as LB4 when
moving a button with an anchor other than UL.

3. A new PAGESETUPDIALOG statement has been added which (as you might
expect!) brings up the Page Setup dialog box. This lets the user
change the paper orientation and margins.

4. The HWND() function can now be used with files as well as windows,
returning the native Windows file or communications port handle.

5. 'Dialog-style' keyboard navigation (e.g. using Tab) now works fully
with non-dialog windows.

6. Non-dialog windows can have a 'default' button.

7. A TEXTEDITOR control works properly in a DIALOG window (Tab and
Enter behave as you would expect in an editor).

Richard.

ne...@rtrussell.co.uk

unread,
Jan 29, 2012, 1:19:47 PM1/29/12
to
I've updated LB Booster to version 1.70:

http://www.lbbooster.com/LBB.exe

Changes in this version are as follows:

1. DATE$ will accept a template with '-' as the delimiter instead of
'/'. So for example DATE$("dd-mmm-yyyy") returns "29-Jan-2012".

2. Printing to the mainwin has been slightly altered to improve
compatibility with LB4.

3. INPUT$(#h, n) now reports an error if n is greater than 65535.

4. RESTORE (used in a SUB or FUNCTION) now works correctly even if it
appears after the DATA statement(s).

5. New command-line options -R, -T, -A and -M are implemented, which
work much the same as their Liberty BASIC counterparts.

The -T switch causes LBB to save a translated and tokenised (it really
is!) file with the extension '.lbb'. I have made available a run-time
engine which can be used to run such files:

http://www.lbbooster.com/LBBRUN.exe

Since LBB's standalone compiled executables are so compact it will
rarely be appropriate to use the separate run-time engine, but it
might be useful in conjunction with a 'menu' program which provides a
selection of programs to run. For the time being I would consider
this an experimental feature.

Richard.

ne...@rtrussell.co.uk

unread,
Feb 24, 2012, 10:08:28 AM2/24/12
to
I've updated LB Booster to version 1.80:

http://www.lbbooster.com/LBB.exe (IDE/compiler)
http://www.lbbooster.com/LBBRUN.exe (runtime engine)

Changes in this version are as follows:

1. Partial support for Unicode has been added. Foreign-alphabet
literal strings may be included in a program, and they will print
correctly in the mainwin and when sent to the printer with LPRINT. In
conjunction with a little API code, GUI controls (except TEXTBOX and
TEXTEDITOR controls) can also display Unicode text.

2. Sprite 'masks' are now linear, allowing sprites to be partially-
transparent or to have anti-aliased edges. This is a very valuable
feature which LB4 has too, but it's not documented!

3. The SPRITECOLLIDES command works correctly even if one or both
sprites has been scaled (SPRITESCALE), offset (SPRITEOFFSET) or
centered (CENTERSPRITE). This does *not* work correctly in LB4.

4. The nine most recently opened programs are included in the File
menu, for the convenience of being re-loaded without having to
navigate to them in a file selector.

Richard.

Hector Alfaro

unread,
Mar 5, 2012, 9:16:00 AM3/5/12
to

Would be great to see a linux version

Auric__

unread,
Mar 6, 2012, 10:44:23 AM3/6/12
to
Hector Alfaro wrote:

> Would be great to see a linux version

If you want a Linux version of Liberty Basic, get glbcc:
http://lbpp.sourceforge.net/
but it hasn't been updated in 10 years (last cvs checkin was March 22, 2002;
last release was January 9, '02) and I have no idea if it actually *works* or
not.

If you want a Linux version of BBC BASIC, get Brandy BASIC:
http://jaguar.orpheusweb.co.uk/branpage.html
...but:
"The main restrictions of the versions of the program that run under
[Linux and certain other OS's] is that they do not support graphics or
sound."

--
*bottles up rage*
0 new messages