home *** CD-ROM | disk | FTP | other *** search
/ Software of the Month Club 1995 December / SOFM_Dec1995.bin / pc / os2 / vpascal / readme.txt < prev    next >
Text File  |  1995-10-31  |  18KB  |  453 lines

  1.                 WELCOME TO VIRTUAL PASCAL
  2.                 ~~~~~~~~~~~~~~~~~~~~~~~~~
  3.                  Version 1.0 Beta (#003)
  4.  
  5. This README.TXT file contains important information about
  6. Virtual Pascal Compiler (VPC), explains the contents and
  7. directory structure, describes how to install VPC, introduces
  8. VPC features and discusses some of the things that have been
  9. changed and added for this release.
  10.  
  11.  
  12. TABLE OF CONTENTS
  13. ~~~~~~~~~~~~~~~~~
  14. 1. Directory structure
  15. 2. Installation
  16. 3. Features
  17. 4. New features
  18. 5. Important information
  19. 6. License agreement
  20. 7. Contacting author
  21. 8. Trademarks
  22.  
  23.  
  24. 1. DIRECTORY STRUCTURE
  25. ~~~~~~~~~~~~~~~~~~~~~~
  26. VPC package has the following directory structure:
  27.  
  28. \VP
  29.  ├──BIN            - VPC executable and help files
  30.  ├──EXAMPLES\...   - VPC examples
  31.  ├──LIB            - VPC object and import libraries
  32.  ├──OUT            - Output directory
  33.  ├──SOURCE\...     - VPC run-time library sources
  34.  └──UNITS          - VPC run-time library
  35.  
  36.  
  37. 2. INSTALLATION
  38. ~~~~~~~~~~~~~~~
  39. To install VPC, take the following steps:
  40.  
  41.   1. Unpack VPC.ZIP file into the X:\VP directory with
  42.      subdirectories (/d PKUNZIP or UNZIP option), where
  43.      X: is the drive on which you want to install VPC.
  44.  
  45.   2. Modify LIBPATH statement and PATH environment variable in
  46.      the OS/2 CONFIG.SYS, so they include X:\VP\BIN directory.
  47.      If you plan to use command line compiler, also include the
  48.      following lines into OS/2 CONFIG.SYS:
  49.        SET VPOUT=X:\VP\OUT
  50.        SET VPLIB=X:\VP\LIB
  51.      VPVIO.CMD and VPPM.CMD command files located in the
  52.      \VP\BIN directory use these environment variables.
  53.  
  54.   3. Reboot OS/2 in order for changes to CONGIG.SYS to
  55.      take place.
  56.  
  57.   4. Change to the X:\VP directory and run BLDRTL.CMD OS/2
  58.      command file to build VPC run-time library.
  59.  
  60.   5. VP.EXE is the Integrated Development Environment (IDE)
  61.      executable, VPC.EXE is a command line compiler. Type VP at
  62.      the OS/2 command prompt to start the IDE. Go to the
  63.      Options│Directories dialog box and include X: into
  64.      all available paths.
  65.  
  66.  
  67. 3. FEATURES
  68. ~~~~~~~~~~~
  69. Virtual Pascal is a professional quality 32-bit Object Pascal
  70. compiler for OS/2 version 2.0 or above. It includes command
  71. line compiler and the Integrated Development Environment with
  72. integrated debugger. VPC can be used to develop a wide range of
  73. text mode and Presentation Manager applications for OS/2 and
  74. to port existing sofware products written in Borland Pascal
  75. from DOS to OS/2.
  76.  
  77.   I. Virtual Pascal Compiler features
  78.   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  79.   1. Borland Pascal version 7.0 compatibility including
  80.      the latest extensions, such as open array parameters, open
  81.      strings, null-terminated strings, dynamic methods, small
  82.      (integer sized) sets.
  83.  
  84.   2. Built-in Make and Build tools.
  85.  
  86.   3. 386/486/Pentium built-in assembler(BASM).
  87.  
  88.   4. The maximum line length acceptable by the compiler is 255
  89.      characters.
  90.  
  91.   5. VPC can generate object file, object library or readable
  92.      assembly source that can be compiled by TASM 3.0+ or MASM
  93.      6.0a+ to obtain equivalent object file. This solves the
  94.      compatibility problem of the .TPU(TPP/TPW/DCU) files
  95.      produced by different versions of the Borland Pascal and
  96.      allows to mix Pascal code with code written in other
  97.      languages.
  98.  
  99.   6. VPC supports Pascal, C, StdCall and far16 Pascal (without
  100.      thunking) calling conventions, so
  101.        - OS/2 API functions can be called directly without
  102.          special interface libraries.
  103.        - OS/2 Exception handlers, Presentation Manager window
  104.          functions, etc, can be written in Pascal.
  105.        - 16-bit OS/2 1.x API functions can be called directly
  106.          without special interface thunk libraries.
  107.  
  108.   7. VPC provides direct I/O port and memory access (Port and
  109.      Mem arrays).
  110.  
  111.   8. Standard units are highly compatible with DOS protected
  112.      mode and Windows platforms of the Borland Pascal:
  113.        - SYSTEM: Mark and Release real mode procedures
  114.          are not implemented, Ptr function accepts only
  115.          one argument - Offset).
  116.  
  117.        - CRT: Sound and NoSound procedures are not implemented
  118.          (new procedure PlaySound can be used instead).
  119.  
  120.        - DOS, WINDOS: DOS specific procedures such as Keep,
  121.          GetIntVec, SetIntVec, etc, are not implemented.
  122.  
  123.        - WINCRT and STRINGS: all Borland Pascal procedures and
  124.          functions are implemented.
  125.  
  126.        - TURBO VISION: there is a patch on Turbo Vision 2.0
  127.          source code to produce 32-bit Turbo Vision for OS/2.
  128.          Drivers unit has been rewritten completely, in other
  129.          units all BASM code is rewritten. Original Turbo
  130.          Vision 2.0 source code is supplied with Borland Pascal
  131.          7.0 (7.01) in the package that includes runtime
  132.          library source code.
  133.  
  134.   9. Smart linking feature lets you create tiny executables
  135.      even with static linking. The term "smart linking" means
  136.      that if some variable, procedure, function or even object
  137.      is not used by the program, it is not linked in the
  138.      executable.
  139.  
  140.   10. VPC can generate dynamic link libraries (DLL). Unlike
  141.       Borland Pascal it can export the whole interface part of
  142.       any unit, including variables, typed constants,
  143.       procedures, function and object methods! Program or
  144.       library can use either static version of a unit (in this
  145.       case object file or object library is linked into
  146.       executable statically) or dynamic version of a unit
  147.       (unit's object file is linked into DLL and import library
  148.       is used to link the executable) with full source level
  149.       integrated debugging support.
  150.  
  151.       There are two standard DLLs available:
  152.        - VPRTL includes System, Crt, Dos and Strings units.
  153.        - TVISION includes all Turbo Vision units (only users
  154.          that have Turbo Vision source can generate this one).
  155.  
  156.   11. There are interface units for almost all OS/2 API:
  157.        - Base OS/2 API.
  158.        - 16-bit OS/2 1.x API (VIO/KBD/MOU/MON/NLS calls).
  159.        - Presentation Manager API.
  160.        - REXX API.
  161.  
  162.   12. All Turbo Pascal examples can be compiled by Virtual
  163.       Pascal with minor changes (BREAKOUT, TVDEMO, TVEDIT, TVFM,
  164.       etc.)
  165.  
  166.   13. Examples that show the use of standard units are
  167.       supplied. Presentation Manager TRIPLEX game and CLOCK
  168.       application are also given as an example.
  169.  
  170.   II. Virtual Pascal IDE features
  171.   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  172.  
  173.   1. Background compilation.
  174.  
  175.   2. Multi window editor that is able to edit text files of any
  176.      size with:
  177.        - Unlimited number of Undo and Redo;
  178.        - Block operations with 3 block types: line, columnar
  179.          and stream;
  180.        - Clipboard operations: cut, copy and paste;
  181.        - Syntax highlighting (2 types of comments, whitespace,
  182.          reserved words, identifiers, symbols, strings, numbers
  183.          and assembler);
  184.        - Search and Replace with regular expressions in forward
  185.          and backward directions;
  186.        - Incremental search facility.
  187.  
  188.   3. Full keystroke macro support, including Macro List dialog
  189.      box that displays keystroke macros and lets you add, remove
  190.      and edit them.
  191.  
  192.   4. Context-sensitive help system:
  193.        - If help window is resized, text will be wrapped to fit
  194.          the window.
  195.        - Topic search from editor and help windows.
  196.        - Search for text in the current topic, index or
  197.          in all topics with Case Sensitive and Whole Words Only
  198.          options.
  199.        - Clipboard Copy and Copy example commands.
  200.  
  201.   5. Integrated Debugger is a source level debugger that uses
  202.      Editor windows to track source:
  203.        - Sophisticated source tracing algorithm that allows
  204.          even complex lines to be stepped over at high speed
  205.          (E.g: for I := 1 to 100000 do SomeFuncCall; )
  206.        - Watches window.
  207.        - Call stack window.
  208.        - Breakpoints window. Besides execution breakpoints
  209.          it's possible to set up to four datapoints (that are
  210.          supported by 386 hardware) with condition and pass
  211.          count.
  212.        - Register window that shows the values of the
  213.          CPU registers and flags and allows to change them.
  214.        - Numeric Coprocessor window with Stack registers, Control
  215.          register and Status register panes that shows the
  216.          state of the 387 coprocessor and lets you change it.
  217.        - Dump window that shows the memory in all Pascal
  218.          integer and floating point formats.
  219.        - CPU window with Code, Data, Register and Stack panes
  220.          displays the source lines and corresponding
  221.          disassembled instructions. You can patch code using
  222.          built-in assembler that is similar to BASM of the VPC.
  223.        - Log window that collects the information about program
  224.          flow (Module loads, thread creations and terminations,
  225.          exceptions, breakpoints, user comments, etc).
  226.        - Evaluate/Modify dialog.
  227.        - Threads dialog lets you examine current program
  228.          threads and freeze or resume them.
  229.        - Exceptions dialog lists all OS/2 system exceptions and
  230.          allows you to specify whether debugger will handle
  231.          particular exception or user program is responsible
  232.          for handling it.
  233.        - Unit dialog lists the units used by the program along
  234.          with the include files. If unit or include file is
  235.          selected, the source file is loaded into editor window.
  236.  
  237.      IDE can be also used as a high speed assembler level
  238.      debugger.
  239.  
  240.  
  241. 4. NEW FEATURES
  242. ~~~~~~~~~~~~~~~
  243.   1. Compiler has been totally rewritten as 32-bit executable.
  244.      As a result, the 64K limit for the size of code and data
  245.      segments for a single unit and symbol size for a unit
  246.      no longer exists.
  247.  
  248.   2. Compilation speed has been increased (up to 25%).
  249.  
  250.   3. Besides dollar symbol ($), the ampersand symbol (&) can be
  251.      used to start compiler directive. You can use it to specify
  252.      Virtual Pascal specific directives: other Pascal
  253.      compilers, such as Borland Pascal, treat them as ordinal
  254.      comments.
  255.  
  256.   4. All Borland Pascal directives are accepted now. Those
  257.      ones that have no Virtual Pascal equivalents are ignored.
  258.      $A is equivalent to $AlignData.
  259.  
  260.   5. $Alters directive is introduced. It complements $Saves
  261.      directive.
  262.  
  263.   6. Smart linking is implemented. Instead of object file(.OBJ),
  264.      compiler can produce object library file (.LIB) for a
  265.      unit. You should NOT use this feature for debugging
  266.      because of the following:
  267.        - library files are larger in size;
  268.        - linking of the units, compiled to object libraries
  269.          can be several times slower than linking object
  270.          files;
  271.        - source level debugging in the IDE is not available for
  272.          the units, compiled to object libraries;
  273.  
  274.      You may use smart linking for building of the final
  275.      executable. It significantly decreases the size of the
  276.      produced executable file.
  277.  
  278.   7. Long file names are supported by the run-time library:
  279.        - Size of the file variables has been increased to hold
  280.          long file name;
  281.        - PathStr, DirStr, NameStr, ExtStr, SearchRec types in
  282.          the DOS/WINDOS units has been modified accordingly.
  283.  
  284.   8. Indices of the dynamic methods are extended to the Longint
  285.      type.
  286.  
  287.   9. Editor has been significantly improved. The following new
  288.      features have been added:
  289.        - BackSpace unident;
  290.        - BackSpace in overwrite mode does not delete
  291.          characters, but replaces them with blanks;
  292.        - Block Indent/Unindent;
  293.        - Set/Find place marker;
  294.        - Non-Persistent blocks;
  295.        - Delete Word Left (Ctrl-BackSpace)
  296.        - Smart Tab;
  297.        - Pair Matching for () and [];
  298.        - Hide/Display Block works now as a toggle, hiding and
  299.          showing the selected text;
  300.        - PgUp/PgDn does not change cursor position within the
  301.          window;
  302.        - Block Read;
  303.        - Block Write;
  304.        - Incremental search facility;
  305.        - Common clipboard for editor and input line boxes;
  306.        - Print file and Print block commands.
  307.  
  308.  
  309. 5. IMPORTANT INFORMATION
  310. ~~~~~~~~~~~~~~~~~~~~~~~~
  311.   1. Hardware requirements.
  312.      VPC has been written on the PC AT-386DX-40Mhz-4MB of RAM.
  313.      VPC requires PC with at least 386SX processor with 4 MB of
  314.      RAM, but 8MB is strongly recommended (actually, these
  315.      restrictions are not VPC, but OS/2 itself). VPC works
  316.      fine on OS/2 2.1 and OS/2 3.0 Warp. It has not been
  317.      checked on OS/2 2.0, but it should not be any problem.
  318.  
  319.   2. Linker and Resource Compiler.
  320.      Virtual Pascal doesn't have its own linker and resource
  321.      compiler, so LINK386 and RC shipped with OS/2 are used. If
  322.      you have BC for OS/2 it is also possible to use TLINK (it
  323.      is almost 2-9 times faster than LINK386, but produces
  324.      larger executables) and BRCC (or Resource Workshop).
  325.  
  326.      Note: In order to use LINK386 and RC you have had to
  327.      install OS/2 with Optional utilities│Link Object Modules
  328.      option enabled.
  329.  
  330.      Also make sure that linker and resource compiler
  331.      executables are in the directory, mentioned in the PATH
  332.      environment variable.
  333.  
  334.      It is recommended that the ALIGN, BASE, and EXEPACK
  335.      LINK386 (-A,-B, -Oc TLINK) options be used when linking
  336.      all executables. This will compress them in size and
  337.      improve their performance. Use /ALIGN:4 (/A:4) for 32-bit
  338.      applications. For .EXE files, /BASE:0x10000 (/B:0x10000)
  339.      option must be used to remove internal fixups from
  340.      executable.
  341.  
  342.      Note, that LINK386 prior to version 2.02.001 (which is
  343.      supplied with OS/2 3.0 Warp) is not able to link
  344.      executable, if more than 32 object libraries are
  345.      specified. If you encounter this problem, look for a new
  346.      version of LINK386 or disable $SmartLink compiler
  347.      directive.
  348.  
  349.   3. Debug Information.
  350.      Virtual Pascal uses debug information that is recorded
  351.      in the interface information file (.VPI) and doesn't
  352.      support IPMD, BC, CodeView or any other debug information.
  353.      However VPC can put line number information to the object
  354.      file, so for example, if you link it into program written
  355.      in IBM C/C++, you can trace Pascal source in IPMD.
  356.  
  357.   4. Differences between Virtual Pascal and Borland Pascal 7.0.
  358.      Read VP.TXT file that describes the differences between
  359.      Virtual Pascal and Borland Pascal in detail.
  360.  
  361.   5. Known problems.
  362.      Hard and soft debugging modes are not yet implemented, so
  363.      when you debug Presentation Manager application you must
  364.      not switch from the IDE to the other sessions.
  365.  
  366.      Multi-thread support is not yet ready, so switch off stack
  367.      checking {$S-} for multi-thread programs.
  368.  
  369.   6. What is still not implemented:
  370.        - Variables, Hierarchy and Inspector windows;
  371.        - Breakpoint condition, pass count and action are not
  372.          functioning yet. All breakpoints are unconditional
  373.          and cause program to stop at the breakpoint location;
  374.        - Run│Until return command.
  375.  
  376. 6. LICENSE AGREEMENT
  377. ~~~~~~~~~~~~~~~~~~~~
  378. Virtual Pascal is not a freeware product. Virtual Pascal and
  379. programs produced by Virtual Pascal CANNOT be used in a
  380. business, commercial, government or institutional environment
  381. except for evaluation purposes. You may use Virtual Pascal
  382. with the following restrictions:
  383.  
  384.   1. You may NOT change the Virtual Pascal executables in any
  385.      way.
  386.   2. You may NOT remove or change copyright notice from either
  387.      object, library or executable files produced by Virtual
  388.      Pascal.
  389.   3. You may NOT sell, sublicense, rent, lease, or assign
  390.      Virtual Pascal.
  391.   4. If Virtual Pascal is to be distributed, it should be
  392.      distributed unaltered and in full.
  393.   5. Author can terminate this license at any time.
  394.  
  395. The usual disclaimers apply, expressed thus:
  396.  
  397. VIRTUAL PASCAL IS SUPPLIED "AS IS", AND WITHOUT ANY WARRANTIES,
  398. EXPRESS OR IMPLIED, INCLUDING THE IMPLIED WARRANTIES OF
  399. MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  400.  
  401. YOU USE VIRTUAL PASCAL ENTIRELY AT YOUR OWN RISK. AUTHOR WILL
  402. ACCEPT NO LIABILITY FOR ANY LOSS OR DAMAGE INCURRED BY ANYONE
  403. FROM THE USE OR THE PURPORTED USE OF VIRTUAL PASCAL, FOR ANY
  404. PURPOSE WHATSOEVER.
  405.  
  406. IF YOU USE VIRTUAL PASCAL YOU AGREE TO THESE TERMS.
  407.  
  408. If these terms are not acceptable to you, then this license is
  409. void: you have no license to use Virtual Pascal and should
  410. delete it from your disk(s).
  411.  
  412. 7. CONTACTING AUTHOR
  413. ~~~~~~~~~~~~~~~~~~~~
  414. This release of the Virtual Pascal is made in the hope that I
  415. will find the people who might be interested in supporting
  416. Virtual Pascal financially. This version has been made on the
  417. sole enthusiasm of the author and long patience of my family,
  418. but it can not last forever. I am looking either:
  419.  - for people/organization who can support VPC financially to
  420.    make its commercial version.
  421.  - for a place, where I can create commercial version of the
  422.    VPC with appropriate financing.
  423. Commercial version of the Virtual Pascal would have the
  424. following additional features:
  425.  - Language would be highly compatible with Borland Delphi
  426.    Pascal compiler, including new standard units;
  427.  - GUI version of the IDE;
  428.  - High speed linker;
  429.  - Delphi VCL patches for OS/2;
  430.  - Relicensed OS/2 developer's toolkit online documentation
  431.    with Pascal bindings;
  432.  - VPC Programmer's guide.
  433.  
  434. You can reach me at any time by e-mail:
  435.  
  436. ----------------------------------
  437. Mr Vitaly Miryanov
  438. E-mail:  ukcuka@deer.icyb.kiev.ua
  439. Fidonet: 2:463/702.44
  440. ----------------------------------
  441.  
  442. If you will find bugs in Virtual Pascal, please let me know.
  443. Send brief description of an error and if it is possible, include
  444. small code fragment, so I can reproduce it. I will update this
  445. beta version, as I receive your bug reports and fix the
  446. problems.
  447.  
  448.  
  449. 8. TRADEMARKS
  450. ~~~~~~~~~~~~~
  451. Company names, brand names and product names are trademarks or
  452. registered trademarks of their respective holders.
  453.