1 CompuServe MIC-39 Microsoft BASIC Compiler Version 6.0 Product Information Introduction Microsoft BASIC Compiler Version 6.0 is Microsoft's BASIC Compiler for IBM personal computers and compatibles, designed to be the total BASIC solution for the professional developing either MS-DOS or MS OS/2 BASIC programs. Product Features Microsoft BASIC Compiler 6.0 supports the MS OS/2 and MS-DOS operating systems, letting users create both protected-mode and real-mode programs. This broad operating system support, together with the debugging power of CodeView, significant new language enhancements, and a host of new utilities, makes Microsoft BASIC Compiler the most advanced BASIC compiler available for the personal computer environment. MS OS/2 Support Microsoft BASIC Compiler 6.0 provides all the tools necessary to create and debug protected-mode applications in the MS OS/2 environment. The compiler component of the BASIC Compiler 6.0 package allows the programmer to choose to compile and link in either operating environment. Under MS-DOS, the default is to target the resultant .EXE for MS-DOS. Under MS OS/2, the default .EXE is created for protected-mode. Among the special features added to the BASIC language in support of MS OS/2 are the SHELL function and the OPEN PIPE: statement. The SHELL function allows the parent process to start another, asynchronous, process which runs simultaneous to the parent process. For example, in an accounting system, a printing process could be started to print a report, while the operator continues entering data. The OPEN PIPE: statement allows the parent to spawn a child process and establishes communications to/from the parent/child. In addition, ON SIGNAL allows interprocess signaling (including signals from the operating system), and SLEEP suspends execution until one of several events occurs. Debugging With Microsoft CodeView, Microsoft's powerful window-oriented debugger is now included in the Microsoft BASIC Compiler package. CodeView gives the programmer complete control over the debugging process, significantly shortening the debugging cycle. CodeView now supports debugging under both MS-DOS and MS OS/2 operating systems. Under MS OS/2, CodeView can debug applications up to 128MB in size. With new support for the Expanded Memory specification, CodeView can debug bigger applications than before under MS-DOS. The window-oriented visual interface of CodeView helps the programmer catch errors quickly by allowing the programmer to view the source code, disassembled code, variables, memory registers, and the stack, all at the same time. Programmers can set breakpoints or watch expressions and variables, animate or single-step through a program's execution, trace the contents of the stack, and set breakpoints that stop execution when the contents of a variable or expression reaches a critical value. For the first time, the programmer can display data structures and interactively follow linked lists and nested structures ("data browsing"). The screen updates automatically during debugging; the programmer always sees the latest information. CodeView also supports debugging mixed-language programs created with Microsoft C, FORTRAN, and Macro Assembler, plus QuickC and QuickBASIC on MS-DOS. CodeView will automatically display the source code in the appropriate language as the routine is entered. Extensive Math Libraries With Microsoft BASIC 6.0 programmers have a choice of three floating-point math libraries. The first, an 8087/287/387 library, offers the fastest execution as well as high precision (80-bit IEEE format) and requires the presence of a math coprocessor. The second, a floating-point coprocessor emulation library, provides the same 80-bit representation without a coprocessor. The third choice, an alternate math package, offers added speed with 64-bit precision for machines without a coprocessor. New Language Enhancements The BASIC language is one of the finest examples of a programming language evolving to meet the needs of application developers. Microsoft has the two following things in mind when evaluating a possible enhancement to the BASIC language: 1. Allow the programmer to tap into the power of the hardware and operating system. 2. Give the programmer the language features necessary to write professional, maintainable, and powerful applications. With these things in mind, the following language enhancements have been added to the BASIC language in Microsoft BASIC Compiler 6.0: 1. Improved error handling. One of the biggest drawbacks to using BASIC for large, professional applications was its inability to handle errors in a multiple module program. With Microsoft BASIC Compiler 6.0, powerful inter-module error handling is now supported. 2. User-defined events. Microsoft BASIC Compiler 6.0 now has the ability to define events that can be trapped and acted upon by the program. This feature allows programmers to easily write instrumentation control and industrial control applications with BASIC Compiler 6.0. 3. User-defined data types and records. Earlier Microsoft BASIC offerings added structure to the BASIC language; BASIC Compiler 6.0 adds structure to the program's data with user- defined data types and records. Analogous to records in Pascal and structures in C, these allow the programmer to work with complex data structure in ways not possible before with BASIC. 4. Arrays as large as available memory. Under MS-DOS, arrays may now be as large as available memory. Under OS/2 protected- mode, arrays may be up to 128MB and are limited only by the amount of available disk space on the hard disk which is acting as the swapping device. Customized Run-Time Modules Programmers can compile their BASIC applications into either a stand-alone .EXE file; or an .EXE which requires the BASIC Compiler 6.0 run-time module to execute. If the latter is used, the runtime module can be extended by the programmer with often- used routines. Whether a developer builds stand-alone .EXEs or uses the routine module, he or she can "link out" parts of BASIC that are not needed, to provide .EXE size control. This option, available for both real-mode and protected-mode applications, can result in considerably reduced program size on disk in large multi-module, multi-program applications. Microsoft QuickBASIC 4.0 Included To help the programmer create MS-DOS applications as fast as possible, Microsoft QuickBASIC 4.0 is included in the BASIC Compiler 6.0 package. With its in-memory editing and debugging, Microsoft QuickBASIC provides an instant programming environment for MS-DOS applications. Offering the interactive feel of an interpreter with the speed of a compiler, Microsoft QuickBASIC 4.0 offers the ultimate programming environment and serves as a high-speed prototyping tool for the BASIC compiler. Time-Saving Utilities In addition to the Microsoft BASIC Compiler 6.0 and Microsoft QuickBASIC 4.0, the package contains a host of utilities to provide extra flexibility and power, and to reduce the time for developing professional applications, as follows: 1. Microsoft Editor: The Microsoft Editor is a smart editor that allows the programmer to compile and link directly from the editor environment, reporting compiler errors back to the user. Supporting both MS-DOS and OS/2, the Microsoft editor allows the programmer to edit either real-mode or protected-mode applications. In addition, the Microsoft Editor is fully programmable, so programmers can customize it to meet their needs. The keyboard can be reconfigured to emulate any editor; we have included configuration files to emulate BRIEF, Epsilon, WordStar, and Microsoft QuickBASIC and QuickC. 2. LIB: The Microsoft library manager lets programmers store modules written in any Microsoft language in a library that can be called from a BASIC program. 3. MAKE: The Microsoft program maintenance utility keeps program components up to date by automatically recompiling and relinking as changes are made to the source.