home *** CD-ROM | disk | FTP | other *** search
- Liberty BASIC - limited version Release 0.9c
- Copyright 1992, 1993 Shoptalk Systems
-
-
- Liberty BASIC is a personal BASIC programming system for MS Windows 3.x
- requiring a 286 (4 Meg RAM recommended for 286/Standard Mode operation),
- or a 386, 486 or better (586/Pentium?) and 3 Megabytes of RAM or more.
- When Microsoft introduced Windows 3.0, it didn't come with any programming
- facility, so we created Liberty BASIC to be for Windows what GWBASIC and
- QBASIC are for MS-DOS, an easy way for the end users to design their own
- software.
-
- PLEASE call or write if you have any suggestions for features
- you would like to see in Liberty BASIC! We really need lots of
- feedback if Liberty BASIC is to become the product that _you_
- want it to be.
-
- Distribution Policy:
-
- Liberty BASIC 0.9c is Shareware, and it may be copied and freely distributed
- providing the following list of files is distributed together and unmodified.
- Shoptalk Systems forbids the redistribution of the these files for profit.
- A small fee may be levied for distribution costs, but not for the software
- itself.
-
- Liberty BASIC Release 0.9c is a subset of the commercial product. Our hope
- is that you will like this limited release enough to register. If you find
- it useful we ask you to please register your copy. $35 will get you the
- most recent version with technical support, and upgrades will be made
- available for only a few dollars. An illustrated, bound manual is available
- for an additional $15 (only $10 if purchased when you register). Inexpensive
- site licenses are available (educators take note). As an added incentive to
- register, you will also receive an evaluation copy of BASIC Training, a
- shareware BASIC tutor from Cascoly Software.
-
- Version 0.9c takes a deliberate step towards making Liberty BASIC more
- familiar to GWBASIC programmers. The PRINT, INPUT, WHILE...WEND, and
- boolean operations are more compatible with their GWBASIC counterparts.
- A GWBASIC to Liberty BASIC help file has been added. More will follow.
-
- In 0.9c, the user interface has been simplified. The default drive and
- directory are automatically selected when Liberty BASIC is loaded. The
- two file menus of previous versions have been integrated and redundant
- items have been eliminated. A Zoom Text item has been added to the source
- menu.
-
- This is a list of files distributed with this release of Liberty BASIC:
-
- liberty.exe
- liberty.txt - This file
- install.exe - The installation program
- inst.bat
- lbas10.txt - A description of Liberty BASIC 1.0a
- summary.txt - Summary of commands & functions, hints, etc
- register.txt - Order form
- diffrncs.txt - A GWBASIC survival guide
- v09c.txt
- c.grp
- d.grp
- libertyb.grp - The Liberty BASIC Program Manager group file
- install.err
- lbasic.ini - Setup file
- vwabort.dll
- vwbas11.dll
- vwdlgs.dll
- vwfloat.dll
- vwfont.dll
- vwsignon.dll
- vwvm.dll
- ascii.bas
- blank.bas
- brnchtst.bas
- buttons.bas
- circles.bas
- customer.bas
- exponent.bas
- factoril.bas
- for_next.bas
- getchar.bas
- grapher.bas
- graphics.bas
- hilo.bas
- invoice.bas
- mandala.bas
- open.bas
- power.bas
- profile.bas
- read.bas
- sieve.bas
- strtest.bas
- test.bas
- turtle.bas
- turtle2.bas
- exp.bas
- grapher.abc
- trio.abc
-
-
- +-------------------------------------------------------------------------+
- | Known bugs: Windows tries to match fonts more or less with size being |
- | more important than the name of the font. When Liberty BASIC loads, it |
- | tries to get a font of a certain size. On some systems, this ends up |
- | being the Symbol font, which is unusable. If your system does this, |
- | then pull down the System menu and select "Fonts...", then find a font |
- | that suits your taste best. |
- +-------------------------------------------------------------------------+
-
-
- Here is a list of enhancements for version 0.9c:
- ------------------------------------------------------------------------
-
- BONUS!!! BONUS!!!
- Registered users also receive a copy of BASIC Training, a shareware
- BASIC tutorial from Cascoly Software!
-
- 1) The browser/editor now automatically selects the current default
- drive and directory when Liberty BASIC loads.
-
- 2) The File and Files menus are now integrated into one File menu, and
- duplicate items are eliminated.
-
- 3) PRINT and INPUT are more GWBASIC compatible. The compatibility can
- be turned off by pulling down the Setup menu and selecting the
- compatibility item.
-
- 4) Variable names can now start with reserved words.
-
- 5) Boolean AND & OR are more GWBASIC compatible, but bitwise operations
- are still not supported.
-
- 6) The INPUT$() function can now return a single keystroke. Before it
- was only good for file input.
-
- 7) The NEXT command is more GWBASIC compatible. You don't need to
- specify the variable name. For example:
-
- for x = 1 to 10
- print x
- next
-
- is now acceptable.
-
- 8) The PgUp and PgDn keys now work when viewing Help files. Previously
- it was necessary to operate the scroll bars using the mouse.
-
- 9) A GWBASIC to Liberty BASIC help file is provided. The file is named
- DIFFRNCS.TXT, and can be viewed by pulling down the Help menu and
- selecting GWBASIC vs. Liberty BASIC.
-
- 10) The WHILE...WEND commands are now GWBASIC compatible.
-
- 11) The trim$() function now works. It didn't before.
-
- 12) A zoom text option has been added to the Source menu.
-
-
-
- 0.9b Notes:
- ------------------------------------------------------------------------
-
- 1) The following arithmetic functions have been added:
- atn( ) - arc-tangent
- asn( ) - arc-sine
- acs( ) - arc-cosine
- exp( ) - exponent
- log( ) - natural log
- abs( ) - absolute value
-
-
- 2) The FILEDIALOG command has been added:
-
- FILEDIALOG opens a dialog box that permits browsing of
- drives, directories,and files. When the desired file is found
- and selected, FILEDIALOG then returns the full pathname
- (drive:\directory\filename.ext) of the selected file.
-
- For example:
-
- FILEDIALOG "Select a file", "*.TXT", result$
-
- Causes a dialog box to be opened with the title "Select a file".
- Only "*.TXT" files will be displayed, and when the user makes
- the final selection, the resulting path will be placed into the
- string variable result$.
-
-
- 3) The lof( ) function has been added. This lets you find the length of
- an open file.
-
- For example:
-
- open "c:\autoexec.bat" for input as #1
- autoexecLength = lof(#1)
-
- Would set the value of variable autoexecLength to be whatever the
- length of your autoexec.bat file is.
-
-
- 4) The using( ) function now works a lot better.
-
-
- 5) The NOTICE command has been added:
-
- NOTICE pops up a small dialog box containing a message of your choice.
-
- For example:
-
- notice "Illegal Entry"
-
- Would pop up a small notice saying "Illegal Entry". This notice has
- an OK button which lets the user close the notice. Program execution
- would then continue.
-
- In the above form, the title of the dialog box always reads "Notice".
- You can change this using the following form:
-
- notice "User Error" + chr$(13) + "Limit Exceeded!"
-
- In this case, the title would be "User Error", and the notice
- would be "Limit Exceeded!".
-
-
-
- 0.9a notes:
- --------------------------------------------------------------------
-
- A bug causing numeric constants between 0 and -1 to be accidentally
- translated as positive has been corrected ;
-
- Compile error messages are more helpful now, and the compiler will
- highlight the errant line in the source editor ;
-
- An on-line reference facility has been added as selections under
- the Help pull down menu of the file browser. If instruction is needed
- for a particular command, simply select that command in the source
- (double clicking on the word does the trick), then pull down Help
- and select Command Reference ;
-
- Graphics operations are more efficient (faster). Additionally a circle
- command has been added for drawing circles (see circles.bas) ;
-
- Faster compilation ;
-
-
- NOTE: In the file LIBERTY.TXT (this file) in the 0.9 release, the text
- for the TRACE command inaccurately stated that the three levels of
- TRACE worked thus:
-
- 0 - run full speed, 1 - animated trace, 2 - single step
-
- In actuality, the reverse is true.
-
- 0 single steps, 1 animates, and 2 runs full speed.
-
- Here is a list of the supported commands for the 0.9b release:
-
- ABS() ACS() ASC() ASN() ATN() BEEP BUTTON CHR$() CLOSE
- CLS CONFIRM COS() DATE$() DIM EOF() EXP() FILEDIALOG
- FOR...NEXT GOSUB...RETURN GOTO IF...THEN...ELSE INPUT$() INPUT
- INPUT # INSTR() INT() LEFT$() LEN() LET LOF() LOG()
- MID$() OPEN PRINT PRINT # PROMPT LPRINT REM RETURN
- RIGHT$() RND() STOP END SIN() STR$() TAN() TIME$()
- TRACE TRIM$() USING() VAL() WHILE...WEND
-
- Here is a list of the supported graphics commands:
-
- COLOR GOTO PLACE UP DOWN GO LINE FILL FLUSH SIZE CLS
- FONT NORTH TURN POSXY PRINT CIRCLE HOME
-
- Here is a list of the spreadsheet commands:
-
- INDIRECT MANUAL CELL FORMAT RESULT? FORMULA? SELECT USER
- FLUSH
-
- Here is a list of the text window commands:
-
- CLS FONT LINES LINE
-
-
-
-
-
- Release 0.9 Notes:
- ------------------------------------------------------------------------
-
- Some bugs in the parser have been fixed ;
-
- Multiple windows are supported, buttons can be added where desired.
- A button can cause execution to be transferred to a unique branch
- label (event driven style) or it can return a string like an INPUT
- statement (procedural style). Any window can be opened as:
-
- a graphics window with line and turtle color graphics ;
- a text window (for output or input) with font control ;
- a spreadsheet (controllable via BASIC statements) ;
-
- Confirmation and prompter style dialog boxes are supported ;
-
- The debugger has been improved with a variable watch window ;
-
- BASIC code can now be compiled and run from the start-up browser
- without first opening a BASIC source editor window ;
-
- Many more statements and functions are included (see summary.txt) ;
-
- More sample programs are included ;
-
-
-
- Release 0.2 Notes:
- --------------------------------------------------------------------------
-
- IF/THEN/ELSE now supported. For example, the following is valid:
- if mid$(a$,index,1) = "." then print "." else print mid$(a$,index,1);
-
- The compiler is not case sensitive any longer. Reserved words may be
- in either upper or lower case. It is case sensitive in the sense that
- variable names that are the same but with different capitalization are
- considered unique. NOTE: VARIABLE NAMES MAY NOT START WITH STATEMENT
- OR FUNCTION NAMES.
-
- The simple continuous trace debugger in version 0.1 has been replaced
- by a 3 stage pushbutton debugger permitting single step, continuous
- trace, and no trace (run full speed). You can move from one mode to
- the other at will. A variable watch window is not available yet.
-
- In version 0.1 you needed to recompile every time you wanted to run
- a program. Now all that is needed is to bring up the pane menu
- for the window the program is running in and select the Restart option.
- This can be done at any time (not just at the end of a program run) and
- will work in Run or Debug mode.
-
- The ^ arithmetic operator is now supported. The remaining operators
- are: + - * / AND OR
-
- NOTE: AND & OR ARE ONLY USEFUL IN IF/THEN/ELSE STATEMENTS FOR
- THE PURPOSE OF DETERMINING LOGICAL CONDITIONS. FOR EXAMPLE:
-
- if a > b and matchFlag = 1 then gosub [match] is acceptable
- let result = -1 and latch is not acceptable
-
- Version 0.1 was only able to represent negative numbers with an
- expression (0-n). Version 0.2 now supports negative numbers in
- expressions. For example:
- In version 0.1 - print rate * (term + (0 - 5))
- In version 0.2 - print rate * (term + -5)
-
- STOP and END commands are now supported.
-
- RND(1) is now supported. RND(0) is not.
- The random sequence generator is crude, but it works for now. Subsequent
- releases of Liberty BASIC will have improved 'randomness'. For now, let's
- just say that RND(1) provides 'arbitrary' number generation.
-
- STR() was changed to STR$(), which is the proper MBASIC name for this
- function.
-
- TRACE 0, 1, or 2 is now supported. This allows control of the
- debugger trace mode to be controlled inside of the program being
- debugged.
- TRACE 0 no trace, run at full speed
- TRACE 1 trace continously
- TRACE 2 single step
-
- (^^ this is incorrect, see more recent mention, above ^^)
-
-
-
- Release 0.1 notes:
- ---------------------------------------------------------------------------
-
- Highly MS-BASIC compatible (this does not mean Quick BASIC or Q-BASIC) ;
-
- Procedural programming model ;
-
- Line numbers are optional with descriptive alphanumeric labels permitted ;
-
- The following commands are supported:
- LET, PRINT, INPUT, GOTO, GOSUB/RETURN, FOR/NEXT, IF/THEN,
- OPEN/CLOSE, PRINT#, INPUT#, DIM, REM (or ')
-
- The following functions are supported:
- LEN(), MID$(), EOF(), INT(), INPUT$(), VAL(), STR()
-
- Strings and integers of virtually unlimited size are supported (certainly
- larger than most need), and if you have a math coprocessor, Liberty BASIC
- will automatically take advantage of it where advantageous.
-
- File operations for this release of Liberty BASIC are limited to sequential
- access only.
-
- Both single and double dimension, string and numeric arrays are permitted.
-
- Variable name size is not limited, and all characters are significant.
-
- One limitation of this release is that IF/THEN statements can only be used
- for branching. For example, IF count < 10 THEN 500 is valid, but
- IF count < 10 THEN PRINT "Count is less than 10" is not permitted.
- Unfortunately, IF count < 10 THEN GOSUB 500 is not permitted either. This
- limitation will not exist in the registered version.
-
- Additionally, the compiler is very case sensitive (again, this will be
- remedied in the registered release). All basic commands, function names,
- and other reserved words need to be typed as uppercase, but variable names
- can be any length, and any combination of upper and lowercase letters.
- Digits and the period character are permitted, so long as they are not
- used as the first character.
-
- This release compiles at runtime. The registered version will feature
- incremental compilation.
-
- UPGRADING FROM 0.1, 0.2, or 0.9:
-
- If this is a first time installation, skip to INSTALLATION: below. If
- this is an upgrade from a previous version of Liberty BASIC, read on.
-
- The batch file upgrade.bat is included for this procedure. To procede
- with the upgrade (assuming Liberty BASIC is already installed in
- C:\LIBERTY), type:
-
- upgrade c (hit return)
-
- The appropriate files will be moved over to c:\LIBERTY, and then
- they will be deleted from their original drive:\directory. If you
- unzipped this upgrade into C:\LIBERTY, then nothing will be copied
- or deleted.
-
- Once this done, the upgrade will be complete.
-
-
- INSTALLATION:
-
- To install Liberty BASIC, first make sure that you are not
- running Windows. The program INSTALL.EXE is included with
- Liberty BASIC to install it for you.
-
- Run this program, and you will be asked where Windows resides.
- The default is C:\WINDOWS. If Windows resides anywhere else,
- you must specify it here.
-
- Now you will be asked where to install Liberty BASIC. The
- default is C:\LIBERTY. If you want it to be installed elsewhere,
- then you must specify it here.
-
- You will then be given an opportunity to abort the installation.
- If you choose not to abort, then installation will begin then.
-
- Once installation is complete, you may load Windows. If you
- specified any directory to install Liberty BASIC into other than
- \LIBERTY, then you will need to alter the properties for the
- Liberty BASIC icon to indicate where it is installed. Otherwise
- you can just go ahead and double-click on its icon to start
- Liberty BASIC.
-
- Liberty BASIC starts with a file browser window. It is arranged as
- four panes, three across the top, and one on the bottom like so:
-
- +--------------------------------------------------------------+
- | - Liberty BASIC c:\liberty v ^ |
- +--------------------------------------------------------------+
- | a [1] | [..] [2] | demo.bas [3] |
- | b | liberty | read.bas |
- | c | msdos | test.bas |
- | | | |
- | select drive here | select directory | select file here |
- | | here | |
- +--------------------------------------------------------------+
- | [4] |
- | |
- | |
- | |
- | see BASIC source code here |
- | |
- | |
- | |
- | |
- +--------------------------------------------------------------+
-
- Select the drive to browse in pane [1], then select the directory
- (usually liberty) to browse in pane [2], then finally the file to
- browse in pane [3]. When the .BAS file is selected, its source will
- be displayed in pane [4]. To run the program, position the cursor
- inside of pane [3] and press the right hand mouse button and a menu
- will appear. Then select the item BASIC source editor, and a new
- window will open which will contain a copy of the source for the
- selected file. Then position the cursor inside of that pane and again
- press the right hand mouse button for another menu. There are two
- options available, Run and Debug. Run compiles and runs the program,
- and Debug provides the additional benefit of a 3 level source level
- debugger with optional watch window (v 0.9 let's you do this in
- pane 4 without opening a seperate BASIC source editor).
-
- If you want help, you can get this on-line by pulling down the Help
- menu and selecting either Liberty BASIC Notes, or Command Reference.
- If you select a word in the source editor and then select help, the
- system will try to find that word or command in the text.
-
-
- HINT for 286 users with only 3 megabytes of RAM:
- ---------------------------------------------------
- 3 megabytes RAM is very tight for Liberty BASIC when
- running in Standard Mode. If low memory errors make
- Liberty BASIC unusable, try to free up as much extended
- memory as possible. If all else fails, try this:
-
- Run Windows ;
- Run Liberty BASIC ;
- Exit Liberty BASIC ;
- Run Liberty BASIC again
-
- As strange a ritual as this may seem, it does something
- to the way Liberty BASIC manages its memory, making
- those low memory errors much less trouble. We cannot
- guarantee that this trick will work on your system.
-
-
- Here's what you get with your registration fee of $35:
-
- Liberty BASIC 1.x (you will always get the most recent version) with:
-
- A free copy of BASIC Training from Cascoly Software. This shareware
- BASIC tutorial starts you on your way learning to program in BASIC ;
- Technical Support ;
- New! A runtime distribution mechanism lets you share your Liberty
- BASIC programs with others. No runtime charges apply ;
- Graphics commands for filled polygons, circles, ellipses, pie slices ;
- Define your own Windows dialog boxes with the full suite of dialog
- box objects (buttons, checkboxes, comboboxes, etc...) ;
- Segmented graphics, which let you treat each drawn item as an object
- which can be individually manipulated ;
- The ability to add pull down menus with accelerator keys to your programs ;
- The ability to trap the window close event and assign a routine to
- handle it ;
- A more powerful spreadsheet widget ;
- Random access file capability (0.9c is limited to sequential);
- More string, math, and other functions and commands ;
- More...
-
- See the file LBAS10.TXT for more details on version 1.0a! To see
- this file, pull down Help and select Version 1.0 Details.
-
- If you decide to register, send $35 and you will receive the most recent
- version and tech support. Upgrades will be made available for only a
- few dollars. You also get an evaluation copy of BASIC Training, a
- shareware BASIC tutor from Cascoly Software. An illustrated, bound
- manual is available for an additional $15 (only $10 if ordered when
- you register).
-
- Here is some other stuff in the works:
-
- Incremental compilation ;
- Program chaining ;
- Graphics Bitblitting ;
- Powerful animation capabilities ;
- Debugger enhancements ;
- Access to Dynamic-Link-Libraries ;
- DDE capability ;
- The ability to use externally defined resources ;
- More ...!!!
-
-
- PLEASE call or write if you have any suggestions for features
- you would like to see in Liberty BASIC! We really need lots of
- feedback if Liberty BASIC is to become the product that _you_
- want it to be.
-
- To find out more write or call:
-
- Shoptalk Systems
- P.O. Box 1062
- Framingham, MA 01701
-
- 508-872-5315
-
- Or contact Carl Gundel on Compuserve at 71231, 1532
-