Virtual Pascal for OS/2 v1.0 - by fPrint UK Ltd ** The Product Virtual Pascal for OS/2 - or just VP/2 - is a professional 32- bit Pascal development environment for OS/2. Compatible with the de facto Pascal standard set by Borland Pascal and Borland Delphi, VP/2 offers an easy way of porting existing DOS and Windows applications to 32-bit OS/2. ** The Editor The built-in editor features multiple edit windows, syntax highlighting, unlimited undo/redo operations, keystroke macros, full context-sensitive help, and everything else you should expect and demand of a professional programming environment. ** The Compiler The sophisticated built-in compiler produces stable 32-bit code, optimised for both speed and code size. Smart Linking, which prevents never-used code, variables, etc from ending up in your executable also forms part of the compiler and the Presentation Manager Clock example that comes with VP/2 takes up less than 8kB on the hard disk! Programs written with VP/2 of course do not require separate run-time DLLs to run - all the end-user needs is the final executable file. VP/2 allows you to build DLLs. VP/2 DLLs can export anything declared in the interface section of a unit (even objects and classes) making it possible to create DLLs containing entire object hierarchies - such as Turbo Vision or the Delphi Visual Component Library. VP/2 is compatible with the languages of both Borland Pascal and Delphi. Both object models (object and class) are supported, as are advanced exception handling, multi- threading, Run-Time Type Information etc. Full source code for the fully re-entrant and multi-threading prepared Run-Time Library files Dos, Crt, Strings, WinDos and WinCrt units are available, as are the interface sections of the System, SysUtils, TypInfo and Classes units compatible with Borland Delphi. Advanced users will appreciate the powerful 32-bit Built-in assembler that supports all assembler instructions, including the 486- and Pentium-specific ones. The compiler generates standard 32-bit .obj or .lib files and can optionally output standard .asm files that can be compiled with a standard assembler like Turbo Assembler. ** The Debugger The powerful Integrated Development Environment has the functionality of Borland Pascal v7 combined with Borland Turbo Debugger - and more. The IDE gives full control over program execution at both source and assembler code level and features a variety of integrated debugging aids. During execution, you can watch the value of any expression, browse your object hierarchy, follow the call stack, display the CPU registers and the state of the numeric co-processor - all while your application is running. Use the powerful Object Inspector to view complex structured variables, and follow the loading and unloading of OS/2 system DLLs in the Log window - it is all there. The extremely powerful CPU window can be used to view and modify the code at assembler-level and gives you total control over program flow while allowing you to carefully inspect the code generated by the compiler. In this window, VP/2 even supports debugging of any 16-or 32-bit OS/2 executable - just load and debug! ** The Documentation VP/2 is delivered with extensive documentation covering everything needed to get going with serious OS/2 development. A hardcopy VP/2 Users Guide carefully describes the IDE and the usage of the different components of VP/2, and guides the new user through the difficulties involved in writing a program and debugging it. The extensive VP/2 Language Reference Manual, also delivered in hard copy, thoroughly describes the formal syntax of the VP/2 language as well as the inner workings of the compiler. Supplementing the printed manuals, VP/2 comes with an in-depth description of all OS/2 API calls for both text-mode and Presentation Manager. These online manuals are delivered both in the OS/2 INF file format and in the compact VP/2 help file format for use directly in the IDE. Additionally, owners of a version of Turbo Pascal can use the supplied Help Converter to convert Borland's help files to the VP/2 format. ** The Toolkits VP/2 v1.0 comes with support for a number of popular toolkits and libraries, making it possible to migrate applications written using these to OS/2 as well. Borland's Turbo Vision and a clone of Borland's Object Windows Library graphical library are included with optional source code support. The full shareware TechnoJock Turbo Toolkit is included, as is the powerful MATHPAK87 Lite mathemathical library. For users of TurboPower's DOS toolkits Object Professional, Async Professional and B-Tree Filer, source code upgrade patches are included in the VP/2 package. ** The Examples More than 150 examples are included, both as VP/2 source code and as executables ready to run. The examples demonstrate both the VP/2-compatible toolkits as well as a wide range of features and techniques that can be used to write OS/2 text- mode or Presentation Manager applications. The examples include a B-Tree Filer database program, a PM Clock, a program demonstrating how to extend the capabilities of REXX from VP/2, a full-screen graphics example, a PM racing game using the DIVE interface as well as examples of printing from Presentation Manager, multithreading applications and more. ** The Competition Virtual Pascal for OS/2 is not alone in claiming superior compatibility with Borland Pascal and Delphi. The following is a comparison between Virtual Pascal for OS/2, Speed- Pascal/2 and Borland Pascal for DOS and compares the compile time and the size of the executable file. Smaller numbers are desirable. The first two rows list the compile times and executable sizes for TVDEMO, a Turbo Vision demo program delivered with Borland Pascal v7 demonstrating a range of features of the Turbo Vision library. The example, including the TV library, consists of about 22000 lines of source code. The next two rows are the figures for HELLO, a 4 line program that just writes `Hello World' on the screen. Action VP/2 v1.0 SP/2 v1.5G1 BP v7.0 TVDEMO: Smallest 124kB 247kB 150kB executable 13 sec 48 sec 4 sec TVDEMO: With debug 152kB 557kB 300kB information 12 sec 54 sec 4 sec HELLO: Smallest 3900 bytes 28160 bytes 2096 bytes executable 0.5 sec 4 sec 0 sec HELLO: With debug 4004 bytes 31303 bytes 4013 bytes information 0.5 sec 4 sec 0 sec Still, speed is not everything. VP/2 offers superior compatibility with the Borland languages and the following table shows some of the differences in language support: Compiler VP/2 SP/2 BP v7.0 Delphi Delphi feature v1.0 v1.5 G1 v1.0 v2.0 Circular unit yes no yes yes yes references in the implementation part Mem and Port arrays yes no yes yes no Thread local storage yes no no no yes Open String parameters yes no yes yes yes Comp type yes no yes yes yes Currency type yes no no no yes SizeOf( Real ) = 6 yes no yes yes yes Export variables, yes no no no no typed constants, objects and classes from DLLs Outputs standard .OBJ files yes no no no yes Can link external .OBJ files yes no yes yes yes Call 16-bit APIs directly yes no1 n/a n/a n/a Unit Initialization and yes no no no yes Finalization parts Also of importance are the tools and help available. The following table shows a summary of features available in Virtual Pascal for OS/2 and Speed Pascal/2, compared with Borland's Pascal products: Debugger feature VP/2 SP/2 BP v7.0 Delphi Delphi v1.0 v1.5 G1 v1.0 v2.0 Single-step execution yes yes yes yes yes Expression Evalutor yes yes(2) yes yes yes Watch window yes yes(2) yes yes yes Symbol browser no no yes yes yes Call stack window yes no yes yes yes Breakpoints dialog yes no yes yes yes Conditional Breakpoints yes no yes yes yes Data-Breakpoints yes no yes(3) no no Threads dialog yes no n/a n/a yes CPU window yes no yes(3) no no Numeric processor window yes no yes(3) no no Registers window yes yes yes no no Dump window yes no yes(3) no no Symbols window yes yes yes yes yes Object hiearchy window yes no yes yes yes Inspector window yes no yes(3) yes yes Log window yes no yes(3) no no Other features English online help yes yes yes yes yes German online help no yes yes yes yes Printed manual yes yes(4) yes yes yes Resource Editor no yes yes yes yes Help compiler yes no yes yes yes Presentation Manager IDE yes yes no yes yes Text mode only IDE yes no yes no no Stand-alone compiler yes yes yes yes yes Note: The product versions reviewed are listed in the column headings. Specifications are subject to change without notice. _______________________________ (1) Calling the OS/2 keyboard, mouse and video 16-bit standard API functions requires the use of a 27kB pre-built thunk layer DLL. To use other 16-bit DLLs, a new thunk layer DLL must be written in another language, for example VP/2. (2) The Evaluator and Watch window allow simple variables without format specifiers only (3) Only available in Turbo Debugger, which is part of the Borland Pascal v7 product (4) The printed manual is available at additional cost ** The Process The process of actually writing a program in VP/2 is the classic one: Write code - Test - Remove bugs etc, until the program works according to specification. The code can be written in the built-in editor window and the compiled, as illustrated on the screenshot to the right. The task of debugging the code is done in the editor window as well, with the help of the host of helping windows available. In the screenshot shown to the right, the PM Clock example program is being debugged, and execution has been interrupted in the processing of the OS/2 Presentation manager message wm_size. In addition to the source code and the Symbols window, the application itself can be seen.