MICROSOFT QuickBASIC Compiler README.DOC July 18, 1985 The following file contains information in addition to the Microsoft QuickBASIC Manual. The following files are on your QuickBASIC diskette: Compiler Files: BASCOM EXE The QuickBASIC Compiler BCOM10 LIB The QuickBASIC Compiler Library BRUN10 EXE The QuickBASIC Runtime BRUN10 LIB The QuickBASIC Runtime Library LINK EXE The Microsoft Linker GWCASS OBJ Object module for cassette support GWCOM OBJ Object module for communications support SMALLERR OBJ Object module for producing small error messages, and therefore, a smaller EXE file README DOC This information file Demonstration Files: The following examples have been placed on the disk for your convenience. These examples are identical to the examples in chapter 9 of the manual, under the sections headed by the statement/function noted. CALL BAS This demonstrates the use of the CALL statement COMMAND BAS This shows the use of the COMMAND$ function DEFFN BAS This shows the use of DEF FN in multi-line functions MAIN BAS This example, combined with DIGIT.BAS and DEC.BAS show the use of the CHAIN statement as well as COMMON variables DIGIT BAS See MAIN.BAS DEC BAS See MAIN.BAS SUB BAS This shows the use of SUB..SUB END/SUB EXIT to create named subroutines DRAW BAS This shows the use of the DRAW statement PLAY BAS This shows the use of the PLAY statement REDIM BAS This shows the use of the REDIM statement with dynamic arrays and ERASE SHARED BAS This shows the use of SHARE statement in named subroutines with shared variables REMLINE BAS This program is designed to take programs written for a Microsoft BASIC Interpreter and remove the unreferenced line numbers for use with QuickBASIC. REMLINE assumes that the program is syntactically correct. GENERAL NOTES: - QuickBASIC can read Microsoft Word formatted files. For those users of QuickBASIC who own Microsoft Word, you can use Word to edit your programs. There is no need to save the file non-formatted, as QuickBASIC will disreguard any formatting information and compile the program. - if you are using the runtime library and either cassette or communications support, you must link in either GWCASS.OBJ (for cassette support) or GWCOM.OBJ (for communications support). - If you are using the LOCK or UNLOCK statements, or the LOCK type clause in the OPEN statement , you should be aware that they will only function at runtime if you are using MS-DOS 3.00 or higher. The code will be compiled, however, if you are using a DOS below 3.00 you will receive an ADVANCED FEATURE runtime ERROR if either a LOCK or an UNLOCK is performed. If you are using MS-DOS 3.00 you must run the SHARE program to perform any locking operation. ADDITIONS TO THE MANUAL: OPEN STATEMENT: The compiler fully supports the syntax of the IBM BASICA 3.00 interpreter OPEN statement. The functionality of the OPEN statement has been enhanced to control access to opened files in a network environment. The new, expanded syntax is: OPEN "" [FOR ][ACCESS ] [] AS [#] [LEN=] specifications may now include the RANDOM keyword. When no is specified, RANDOM file mode is assumed. In RANDOM mode, if no ACCESS clause is present, three attempts are made to open the file when the OPEN statement is executed. Access is attempted in the following order: 1. Read/write 2. Write-only 3. Read-only The ACCESS clause specifies the type of operation to be performed on the opened file. If the file is already opened by another process and access of the type specified is not allowed, the OPEN will fail and a "Permission Denied" error message is generated. The ACCESS types are: READ Opens the file for reading only. WRITE Opens the file for writing only. READ WRITE Opens the file for both reading and writing. This mode is invalid for all except RANDOM files and files opened for APPEND. The clause restricts access by other processes to an open file. The locktypes are default If is not specified, the file may be opened for reading and writing any number of times by this process, but other processes are denied access to the file while it is opened. SHARED Any process on any machine may read from or write to this file. LOCK READ No other process is granted read access to this file. This access is granted only if no other process has a previous LOCK READ access to the file. LOCK WRITE No other process is granted write access to this file. This also is granted only if no other process has a previous access of this kind to the file. LOCK READ WRITE No other process is granted either read or write access to this file. This access is granted only if LOCK READ WRITE has not already been granted to another process. OPEN now generates error 70 "Permission Denied", when the OPEN is restricted by a previous process. Error 70 was previously "Disk Write Protect." A write protected disk will still give you an error 70. SEGMENT MAPS: Section 8.5 The following entry showed be added to the Segment Maps found in both tables 8.1 and 8.2. If you use named COMMON, the named COMMON segment will be in the segment table. In the Low DS section of the tables, after the entry which looks like: BC_DATA BC_VARS If named COMMONs are used there will be one entry for each named COMMON which looks like: FOO BC_VARS where "FOO" is the name of the COMMON.