Liberty Basic 3.02

Opinion alert:If you cut your teeth on Quickbasic then Liberty Basic is just fine. It's a well done version basic that fills a gap between 'the good old days' and using a full fledged version Microsoft Visual basic.As you can see from his sample, Liberty basic is very much up to the task. It is a true RAD coding tool since it is not bulky or overweight with optional heady concepts like OOP and such. If you just want to perform SERIAL I/O and make a quick and easy user interface you really need a modern language like JAVA?Simple to use is not a bad thing. I used to think JAVA was OK but now with each release since I started using it. I think more that it's just a huge behemoth that is crushing itself under it's own weight.

  1. Liberty Basic 4.04 Chm
  2. Liberty Basic Yahoo Group

The JRE kernel in java 6 is twice the size of java 5. Yikes.He could just as well written his application in TCL/TK and it would be perfectly fine. It's the results that count.

On Sep 12, 6:40 pm, H-Man wrote: As BBC will compile to native x86 executable code,If only! BBC BASIC is interpreted (and there are features of thelanguage which make it virtually impossible to compile) so the speedisn'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 madea LB to BBC translator, which then required the user to obtain BBCBASIC in order to run the program. In contrast, LBB is completelyself-contained; it even creates stand-alone executables without iteven being apparent that BBC BASIC is at work 'under the hood'.LBB is a perfectly genuine attempt to improve the lot of Liberty BASICprogrammers. Yes, it acts as a showcase for what BBC BASIC canachieve but it's not trying to 'convert' anybody.

For more backgroundyou can read my blog post:Richard.H-Man12.09.11 15:02. Okay, thanks Richard. I completely misunderstood what was indicated on thewebsite.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 runwithout BBC BASIC having to be installed and without the need for anyspecial DLLs. You can distribute such executables freely without anyroyalty for BBC BASIC being due. 'I assumed, therefore that it was not runtime dependent. Looking into thisfurther everything i see does say it is interpreted so I'm assuning theruntime is part of the self contained.exe.From your Blog I found;'This is where we complete the circle. By combining the translationcapabilities of LB2BBC with the emulation capabilities of LBLIB it becomespossible to run most Liberty BASIC programs, without actually needingLiberty BASIC itself!

In consultation with some leading Liberty BASICadvocates it became clear that there might be a market for this, not as astranslator to BBC BASIC but as a 'Liberty BASIC Booster'. To the user itwould appear as a way to speed up LB programs (up to ten times in somecases) and to create compact single-file executables, without it beingobviously 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 theLB code run under BBC then? Very cool, but without knowing LB and thelimitations you speak of, I'm not sure I get it.-HKH-Man12.09.11 15:04. On Sep 12, 11:02 pm, H-Man 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 isan interpreted language; it has many features which are not compatiblewith direct conversion to machine code (e.g.

3.02

The EVAL function and theassembler). BBC BASIC for Windows uses the term compile for theprocess of creating a stand-alone executable file containing acompressed form of your BASIC program plus a Run Time Engine toexecute it. Several modern 'compiled' languages (e.g. Java andthe.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 isexceptionally slow (even for an interpreter), it generates huge multi-file executables (a 'Hello world' program creates ten files totalling2.8 Megabytes) and it has lots of bugs that have gone unfixed foryears. Does the LB code run under BBC then?From the LBB docs: 'When you issue the Make Executable command LBBcreates a single-file standalone executable containing the BBC BASICfor Windows run-time engine, the LBLIB emulator and a tokenised/compressed version of the translated BASIC program'.Richard.H-Man13.09.11 7:18. On Sep 20, 8:57 pm, 'Gordon Rahman' 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 toeliminate the annoying and increasingly time-consuming 'nag screen'that you get at the start. Many users seem not to care whether theycan make an EXE or not, so there's little incentive to get the fullversion for that reason. But once the nag screen forces you to waitseveral minutes before you can even start using LB, it becomesextremely frustrating. With LBB there is no need for a LB license.This is what it says in the LBB documentation: 'LB Booster isFreeware; you are strongly encouraged to purchase the full version ofLiberty Basic on which to develop, test and debug your programs priorto '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 'addon' to LB. I wasn't obliged to do this; I did it solely as a gestureto maintain good relations with the LB community.Many programming languages have alternative implementations availablefrom different vendors, think Fortran or C or Pascal or BBC BASIC orJava.

So why should Liberty BASIC be any different? Most vendorshave to survive in a competitive environment in which to maintaintheir market share they must keep their product up-to-date, fix bugsefficiently and provide excellent support to their users. Having amonopoly can lead to complacency.Richard.Gordon Rahman20.09.11 15:12. On Sep 21, 12:12 am, 'Gordon Rahman' wrote: Ok sorry. Didn't read the LBB doc good enough.

But then. I've updated LB Booster to version 0.93; you can download the newversion from the usual place: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, ifany.3. FILES redimensions the array if it has fewer than four columns.4. PRINT TAB now works like LB if the specified column has alreadybeen passed.5. The SELECT text command can now position the cursor/caret beyondthe currentend of the line.6. WINDOWPOPUP and DIALOGPOPUP 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 inversion 0.92Richard.ne.@rtrussell.co.uk01.10.11 3:07. I've updated LB Booster to version 0.94; you can download the newversion from the usual place: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.uk08.10.11 1:41.

I've updated LB Booster to version 0.96; you can download the newversion from the usual place:Changes in this version are as follows:1. FILES creates the array if it doesn't exist (LB apparently doesthis, 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 thelikelihood of triggering a 'false positive' virus alert.5. New 'Emulate Slicing' option to accurately emulate LEFT$, MID$ andRIGHT$ when a negative length parameter is supplied.Richard.ne.@rtrussell.co.uk15.10.11 7:18. I've updated LB Booster to version 0.97; you can download the newversion from:Changes in this version are as follows:1.

MouseX and MouseY now work correctly when the window has beenscrolled.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 (LBcannot do this, but the docs don't say so).Richard.ne.@rtrussell.co.uk22.10.11 7:42.

I've updated LB Booster to version 1.20: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 aselection of different resolutions and bit-depths, including the largePNG-encoded icons used by Vista and Windows 7.Richard.ne.@rtrussell.co.uk19.11.11 4:40. I've updated LB Booster to version 1.30: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 fileextension (but don't choose.LBB as that's used by LBB).2.

The MKDIR and RMDIR functions are fully implemented, and returnthe expected codes on failure.3. The 'pie' and 'piefilled' graphics commands have been modified tobe more compatible with LB. In particular the specified angles areapplied.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' crashsometimes seen with LB (although I was never able to reproduce thathere).Richard.ne.@rtrussell.co.uk19.12.11 6:00.

I've updated LB Booster to version 1.40: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-bitvalues.4. TRIM$ is faster than before when there are a large number ofcharacters to strip.5. StartupDir$ has a trailing backslash (unlike DefaultDir$).6. Several other minor compatibility and stability improvements.Richard.Hector Alfaro20.12.11 11:33. On Dec 20, 7:33 pm, Hector Alfaro 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 fileit is trying to create conflicts with the newer version LBB hasalready created.

I have now rebuilt QB2BBC with the latest libraries;you can download it from here:If you update your copy you should be able to run both QB2BBC and LBBtogether.Richard.ne.@rtrussell.co.uk06.01.12 14:31. I've updated LB Booster to version 1.50:Changes in this version are as follows:1. READ (used within a FUNCTION or SUB) reads DATA which is within thescope of that function.2. ON ERROR correctly unwinds the stack, if the error occurred in amore deeply nested FUNCTION or SUB.3. Array names may include 'dots', as may variables passed to the'contents', 'insert' and 'stringwidth?' A few other minor compatibility improvements have been made.Note that a consequence of (2) is that RESUME can only be used in thescope of the FUNCTION or SUB (if any) in which the error occurred.Richard.ne.@rtrussell.co.uk14.01.12 8:34.

I've updated LB Booster to version 1.60:Changes in this version are as follows:1. The LPRINT margins have been reinstated; they default to 10mm allround.

The graphics 'print' command now ignores the margins and alwaysuses the full printable area.2. The 'locate' command now hopefully works the same as LB4 whenmoving a button with an anchor other than UL.3.

A new PAGESETUPDIALOG statement has been added which (as you mightexpect!) brings up the Page Setup dialog box. This lets the userchange 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 fullywith non-dialog windows.6. Non-dialog windows can have a 'default' button.7. A TEXTEDITOR control works properly in a DIALOG window (Tab andEnter behave as you would expect in an editor).Richard.ne.@rtrussell.co.uk29.01.12 10:19. I've updated LB Booster to version 1.70: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 improvecompatibility 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 itappears after the DATA statement(s).5. New command-line options -R, -T, -A and -M are implemented, whichwork much the same as their Liberty BASIC counterparts.The -T switch causes LBB to save a translated and tokenised (it reallyis!) file with the extension '.lbb'. I have made available a run-timeengine which can be used to run such files:Since LBB's standalone compiled executables are so compact it willrarely be appropriate to use the separate run-time engine, but itmight be useful in conjunction with a 'menu' program which provides aselection of programs to run.

For the time being I would considerthis an experimental feature.Richard.ne.@rtrussell.co.uk24.02.12 7:08. I've updated LB Booster to version 1.80:(IDE/compiler)(runtime engine)Changes in this version are as follows:1. Partial support for Unicode has been added.

Foreign-alphabetliteral strings may be included in a program, and they will printcorrectly in the mainwin and when sent to the printer with LPRINT. Inconjunction with a little API code, GUI controls (except TEXTBOX andTEXTEDITOR 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 valuablefeature which LB4 has too, but it's not documented!3. The SPRITECOLLIDES command works correctly even if one or bothsprites has been scaled (SPRITESCALE), offset (SPRITEOFFSET) orcentered (CENTERSPRITE).

This does.not. work correctly in LB4.4. The nine most recently opened programs are included in the Filemenu, for the convenience of being re-loaded without having tonavigate to them in a file selector.Richard.Hector Alfaro05.03.12 6:16.

Hector Alfaro wrote: Would be great to see a linux versionIf you want a Linux version of Liberty Basic, get glbcc: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. ornot.If you want a Linux version of BBC BASIC, get Brandy BASIC.but:'The main restrictions of the versions of the program that run underLinux and certain other OS's is that they do not support graphics orsound.' -.bottles up rage.Hector Alfaro06.03.12 18:10. On Mar 7, 2:10 am, Hector Alfaro wrote: Are there are any plans to support such thing on LBB?One of the purposes of LBB is to extend the capabilities of LB - notsimply to clone it - so if it is a feature that several people wouldfind useful I don't rule out supporting it. What I would say, though,is that the window types and controls that are currently supported byLB4 (and LBB) are features provided by the OS (Windows) - LBB actsonly as a thin wrapper around the Windows API. As far as I knowWindows doesn't provide a grid control of the kind you propose, sothat puts it in a rather different category.Richard.ArarghMai.@not.at.arargh.com09.03.12 16:54. Wrote: On Wed, 7 Mar 2012 02:16:26 -0800 (PST), ' wrote:On Mar 7, 2:10 am, Hector Alfaro wrote: Are there are any plans to support such thing on LBB?One of the purposes of LBB is to extend the capabilities of LB - notsimply to clone it - so if it is a feature that several people wouldfind useful I don't rule out supporting it.

Liberty Basic 4.04 Chm

What I would say, though,is that the window types and controls that are currently supported byLB4 (and LBB) are features provided by the OS (Windows) - LBB actsonly as a thin wrapper around the Windows API. As far as I knowWindows doesn't provide a grid control of the kind you propose, sothat puts it in a rather different category. It appears that VB2 & VB3 had some sort of a grid control, but I didn't see any in later versions. And, AFAIK, windows itself doesn't have any such.Some editions of VB6 (not sure which; I have 'enterprise') came with acontrol called a 'flexgrid'.

Liberty Basic Yahoo Group

VB5.might. have had flexgrids; I think VB4 didnot.-'What do you fear, lady?' A cage,' she said.