Liberty BASIC - limited version Release 0.2 Copyright 1992 Shoptalk Systems User Documentation Liberty BASIC is a personal BASIC programming system for MS Windows 3.0 requiring a 286, 386, 486 or better and 3 Megabytes of RAM or more. Distribution Policy: Liberty BASIC 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 Liberty BASIC for profit. A small fee may be levied for distribution costs, but not for the software itself. This is a list of files distributed with this release of Liberty BASIC: liberty.exe liberty.txt - This file register.txt - Order form vwabort.dll vwbas11.dll vwdlgs.dll vwfloat.dll vwfont.dll vwsignon.dll vwvm.dll open.bas test.bas demo.bas first.bas factoril.bas for_next.bas read.bas profile.bas getchar.bas duochar.bas power.bas install.bat The philosophy we are applying here works as follows. Liberty BASIC Release 0.2 is a subset of the commercial product. Our hope is that you will like this limited release enough to register. For $49.95 you will get a powerful superset of this version, with a printed manual, technical support, and upgrades will be made available for a small fee. As of this release (Feb 29 1992) the commercial version is not ready (release is slated for the middle of March of 1992), but there is no reason for us to keep the limited release to ourselves, so here it is. Liberty BASIC Release 0.1 supports the following features: Highly MS-BASIC compatible (this does not mean Quick BASIC or Q-BASIC) ; Procedural programming model (not event driven, like Visual BASIC) ; 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. Additional features with release 0.2: 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. 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 INSTALLATION: A simple batch file install.bat is included to make installation as simple as possible: Assuming that the software is to be installed on drive C:, type the following: install c (hit return) a subdirectory named c:\liberty will be created and the files will be copied over. Then you will need to start windows and create a new program group and item for Liberty BASIC as follows: Once the installation is completed, you will need to make Windows aware of Liberty BASIC. To add Liberty BASIC as a Windows program group: Load Windows 3.0 ; Pull down the File menu and select New ; Select Program Group and click on the OK button ; Type Liberty BASIC as the description and click on the OK button ; Again pull down the File menu and select New ; Click on the OK button to accept the default Program Item response ; Type Liberty BASIC as the description and click on the Browse button ; Double-click on [..] in the Directories list box ; Double-click on [liberty] in the Directories list box ; Double-click on liberty.exe in the Files list box ; Now click on the OK button the the Program Item Properties dialog box You may now resize the Liberty BASIC group window to your liking. To start Liberty BASIC, double-click on the torch icon. 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 for file selected here | | | | | | | | | +--------------------------------------------------------------+ Select the drive to browse in pane [1], then select the directory 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]. The code cannot be run from this window. 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, Debug provides the additional benefit of highlighting the source code line by line as the program runs in its own window. The debugger in the registered version will have a variable watch window and single step capabilities. Here's what to expect in the registered versions of Liberty BASIC. Not all of these features will be included in release 1.0: Enhanced source level debugger with single step, and variable watch ; Incremental compilation ; Enhanced random access file capability ; Visual programming tools ; More functions: string, numeric, trig, output formatting, etc... ; Graphics Capabilities: bitmapped, line, and turtle ; Integrated spreadsheet and forms capabilities ; Full cut and paste via Windows Clipboard ; More ... PLEASE call or write if you have any suggestions for features you would like to see in Liberty BASIC! To find out more write or call: Shoptalk Systems P.O. Box 837 Marblehead, MA 01945-0837 508-872-5315